1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2024-12-04 10:35:06 +02:00

Adds a simple exercise for structures

This commit is contained in:
Brian Kung 2019-05-25 06:39:58 -05:00
parent 8bf8cbbd61
commit 9b92aa08ae
3 changed files with 59 additions and 0 deletions

View 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)

View 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);
}
}
}

View File

@ -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]]