From 9b92aa08aead17d7737137f1c5c382548797b83e Mon Sep 17 00:00:00 2001 From: Brian Kung Date: Sat, 25 May 2019 06:39:58 -0500 Subject: [PATCH] Adds a simple exercise for structures --- exercises/structs/README.md | 7 ++++++ exercises/structs/structs1.rs | 46 +++++++++++++++++++++++++++++++++++ info.toml | 6 +++++ 3 files changed, 59 insertions(+) create mode 100644 exercises/structs/README.md create mode 100644 exercises/structs/structs1.rs diff --git a/exercises/structs/README.md b/exercises/structs/README.md new file mode 100644 index 00000000..f400d097 --- /dev/null +++ b/exercises/structs/README.md @@ -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) diff --git a/exercises/structs/structs1.rs b/exercises/structs/structs1.rs new file mode 100644 index 00000000..e6c378f9 --- /dev/null +++ b/exercises/structs/structs1.rs @@ -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); + } + } +} diff --git a/info.toml b/info.toml index 207e8da3..ac819750 100644 --- a/info.toml +++ b/info.toml @@ -76,6 +76,12 @@ mode = "compile" path = "exercises/primitive_types/primitive_types6.rs" mode = "compile" +# STRUCTS + +[[exercises]] +path = "exercises/structs/structs1.rs" +mode = "test" + # TESTS [[exercises]]