diff --git a/exercises/if/if2.rs b/exercises/if/if2.rs new file mode 100644 index 0000000000..80effbdf3d --- /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") + } +} diff --git a/info.toml b/info.toml index d7374aba99..e852ad0ca8 100644 --- a/info.toml +++ b/info.toml @@ -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]]