diff options
Diffstat (limited to 'rust/rustlings/exercises/07_structs/structs1.rs')
| -rw-r--r-- | rust/rustlings/exercises/07_structs/structs1.rs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/rust/rustlings/exercises/07_structs/structs1.rs b/rust/rustlings/exercises/07_structs/structs1.rs new file mode 100644 index 0000000..8376a98 --- /dev/null +++ b/rust/rustlings/exercises/07_structs/structs1.rs @@ -0,0 +1,50 @@ +struct ColorRegularStruct { + red: u8, + green: u8, + blue: u8, +} + +struct ColorTupleStruct(u8, u8, u8); + +#[derive(Debug)] +struct UnitStruct; + +fn main() { + // You can optionally experiment here. +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn regular_structs() { + let green = ColorRegularStruct { + red: 0, + green: 255, + blue: 0, + }; + + assert_eq!(green.red, 0); + assert_eq!(green.green, 255); + assert_eq!(green.blue, 0); + } + + #[test] + fn tuple_structs() { + let green = ColorTupleStruct(0, 255, 0 ); + + assert_eq!(green.0, 0); + assert_eq!(green.1, 255); + assert_eq!(green.2, 0); + } + + #[test] + fn unit_structs() { + let unit_struct = UnitStruct; + + let message = format!("{unit_struct:?}s are fun!"); + + assert_eq!(message, "UnitStructs are fun!"); + } +} |