mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-30 00:00:02 +03:00
5812f1f27b
The reasoning here is pretty straightforward: you don't say "Hungry, if eat." That doesn't make sense. We want to get "foo" back if given "fizz", so it seems this makes far more sense as "Eat, if hungry," or in this case, return `foo_if_fizz` is given.
37 lines
678 B
Rust
37 lines
678 B
Rust
// if2.rs
|
|
|
|
// Step 1: Make me compile!
|
|
// Step 2: Get the bar_for_fuzz and default_to_baz tests passing!
|
|
// Execute `rustlings hint if2` or use the `hint` watch subcommand for a hint.
|
|
|
|
// I AM NOT DONE
|
|
|
|
pub fn foo_if_fizz(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!(foo_if_fizz("fizz"), "foo")
|
|
}
|
|
|
|
#[test]
|
|
fn bar_for_fuzz() {
|
|
assert_eq!(foo_if_fizz("fuzz"), "bar")
|
|
}
|
|
|
|
#[test]
|
|
fn default_to_baz() {
|
|
assert_eq!(foo_if_fizz("literally anything"), "baz")
|
|
}
|
|
}
|