mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-26 23:36:30 +00:00
Adds a simple exercise for structures
This commit is contained in:
parent
8bf8cbbd61
commit
9b92aa08ae
3 changed files with 59 additions and 0 deletions
7
exercises/structs/README.md
Normal file
7
exercises/structs/README.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
### Strings
|
||||||
|
|
||||||
|
Rust has three struct types: a classic c struct, a tuple struct, and a unit struct.
|
||||||
|
|
||||||
|
#### Book Sections
|
||||||
|
|
||||||
|
- [Structures](https://doc.rust-lang.org/rust-by-example/custom_types/structs.html)
|
46
exercises/structs/structs1.rs
Normal file
46
exercises/structs/structs1.rs
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
// structs1.rs
|
||||||
|
// Address all the TODOs to make the tests pass!
|
||||||
|
|
||||||
|
struct ColorClassicStruct {
|
||||||
|
// TODO: Something goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ColorTupleStruct(/* TODO: Something goes here */);
|
||||||
|
|
||||||
|
struct ColorUnitStruct;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn classic_c_structs() {
|
||||||
|
// TODO: Instantiate a classic c struct!
|
||||||
|
// let green =
|
||||||
|
|
||||||
|
assert_eq!(green.name, "green");
|
||||||
|
assert_eq!(green.hex, "#00FF00");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn tuple_structs() {
|
||||||
|
// TODO: Instantiate a tuple struct!
|
||||||
|
// For more fun, use the field initialization shorthand.
|
||||||
|
// let green =
|
||||||
|
|
||||||
|
assert_eq!(green.0, "green");
|
||||||
|
assert_eq!(green.1, "#00FF00");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unit_structs() {
|
||||||
|
// TODO: Instantiate a unit struct!
|
||||||
|
// let green =
|
||||||
|
|
||||||
|
if let ColorUnitStruct = green {
|
||||||
|
assert!(true);
|
||||||
|
} else {
|
||||||
|
assert!(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -76,6 +76,12 @@ mode = "compile"
|
||||||
path = "exercises/primitive_types/primitive_types6.rs"
|
path = "exercises/primitive_types/primitive_types6.rs"
|
||||||
mode = "compile"
|
mode = "compile"
|
||||||
|
|
||||||
|
# STRUCTS
|
||||||
|
|
||||||
|
[[exercises]]
|
||||||
|
path = "exercises/structs/structs1.rs"
|
||||||
|
mode = "test"
|
||||||
|
|
||||||
# TESTS
|
# TESTS
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
|
|
Loading…
Reference in a new issue