summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Kung <brian@callmekung.com>2019-05-25 06:39:58 -0500
committerBrian Kung <brian@callmekung.com>2019-05-25 06:39:58 -0500
commit9b92aa08aead17d7737137f1c5c382548797b83e (patch)
treea1707dc54c1b04901269fa88d5c0c2f8eb34de91
parent8bf8cbbd61a909b0580162c9f1fd314885daf1c2 (diff)
Adds a simple exercise for structures
-rw-r--r--exercises/structs/README.md7
-rw-r--r--exercises/structs/structs1.rs46
-rw-r--r--info.toml6
3 files changed, 59 insertions, 0 deletions
diff --git a/exercises/structs/README.md b/exercises/structs/README.md
new file mode 100644
index 0000000..f400d09
--- /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 0000000..e6c378f
--- /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 207e8da..ac81975 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]]