summaryrefslogtreecommitdiff
path: root/exercises
diff options
context:
space:
mode:
Diffstat (limited to 'exercises')
-rw-r--r--exercises/error_handling/errors1.rs2
-rw-r--r--exercises/if/if3.rs55
2 files changed, 56 insertions, 1 deletions
diff --git a/exercises/error_handling/errors1.rs b/exercises/error_handling/errors1.rs
index 0ba59a5..13d2724 100644
--- a/exercises/error_handling/errors1.rs
+++ b/exercises/error_handling/errors1.rs
@@ -3,7 +3,7 @@
// This function refuses to generate text to be printed on a nametag if you pass
// it an empty string. It'd be nicer if it explained what the problem was,
// instead of just sometimes returning `None`. Thankfully, Rust has a similar
-// construct to `Option` that can be used to express error conditions. Let's use
+// construct to `Result` that can be used to express error conditions. Let's use
// it!
//
// Execute `rustlings hint errors1` or use the `hint` watch subcommand for a
diff --git a/exercises/if/if3.rs b/exercises/if/if3.rs
new file mode 100644
index 0000000..73a7025
--- /dev/null
+++ b/exercises/if/if3.rs
@@ -0,0 +1,55 @@
+// if3.rs
+//
+// Execute `rustlings hint if3` or use the `hint` watch subcommand for a hint.
+
+// I AM NOT DONE
+
+pub fn animal_habitat(animal: &str) -> &'static str {
+ let identifier = if animal == "crab" {
+ 1
+ } else if animal == "gopher" {
+ 2.0
+ } else if animal == "snake" {
+ 3
+ } else {
+ "Unknown"
+ };
+
+ // DO NOT CHANGE THIS STATEMENT BELOW
+ let habitat = if identifier == 1 {
+ "Beach"
+ } else if identifier == 2 {
+ "Burrow"
+ } else if identifier == 3 {
+ "Desert"
+ } else {
+ "Unknown"
+ };
+
+ habitat
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn gopher_lives_in_burrow() {
+ assert_eq!(animal_habitat("gopher"), "Burrow")
+ }
+
+ #[test]
+ fn snake_lives_in_desert() {
+ assert_eq!(animal_habitat("snake"), "Desert")
+ }
+
+ #[test]
+ fn crab_lives_on_beach() {
+ assert_eq!(animal_habitat("crab"), "Beach")
+ }
+
+ #[test]
+ fn unknown_animal() {
+ assert_eq!(animal_habitat("dinosaur"), "Unknown")
+ }
+}