diff options
| -rw-r--r-- | exercises/if/if2.rs | 36 | ||||
| -rw-r--r-- | info.toml | 9 |
2 files changed, 45 insertions, 0 deletions
diff --git a/exercises/if/if2.rs b/exercises/if/if2.rs new file mode 100644 index 0000000..80effbd --- /dev/null +++ b/exercises/if/if2.rs @@ -0,0 +1,36 @@ +// if2.rs + +// Step 1: Make me compile! +// Step 2: Get the bar_for_fuzz and default_to_baz tests passing! +// Execute the command `rustlings hint if2` if you want a hint :) + +// I AM NOT DONE + +pub fn fizz_if_foo(fizzish: &str) -> &str { + if fizzish == "fizz" { + "foo" + } else { + 1 + } +} + +// No test changes needed! +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn foo_for_fizz() { + assert_eq!(fizz_if_foo("fizz"), "foo") + } + + #[test] + fn bar_for_fuzz() { + assert_eq!(fizz_if_foo("fuzz"), "bar") + } + + #[test] + fn default_to_baz() { + assert_eq!(fizz_if_foo("literally anything"), "baz") + } +} @@ -87,6 +87,15 @@ Remember in Rust that: - `if`/`else` conditionals are expressions - Each condition is followed by a `{}` block.""" +[[exercises]] +name = "if2" +path = "exercises/if/if2.rs" +mode = "test" +hint = """ +For that first compiler error, it's important in Rust that each conditional +block return the same type! To get the tests passing, you will need a couple +conditions checking different input values.""" + # FUNCTIONS [[exercises]] |
