From 1da84b5f7c489f65bd683c244f13c7d1ee812df0 Mon Sep 17 00:00:00 2001 From: Rob Story Date: Thu, 30 Apr 2020 21:17:17 -0700 Subject: [PATCH 1/2] feat: Add if2 exercise --- exercises/if/if2.rs | 36 ++++++++++++++++++++++++++++++++++++ info.toml | 9 +++++++++ 2 files changed, 45 insertions(+) create mode 100644 exercises/if/if2.rs diff --git a/exercises/if/if2.rs b/exercises/if/if2.rs new file mode 100644 index 00000000..80effbdf --- /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 d7374aba..e852ad0c 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]] From f6cffc7e487b42f15a6f958e49704c93a8d4465b Mon Sep 17 00:00:00 2001 From: Rob Story Date: Sat, 2 May 2020 16:39:37 -0700 Subject: [PATCH 2/2] fix(option1): Add cast to usize, as it is confusing in the context of an exercise about Option --- exercises/option/option1.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/option/option1.rs b/exercises/option/option1.rs index 51c39f50..2a6c2f77 100644 --- a/exercises/option/option1.rs +++ b/exercises/option/option1.rs @@ -18,6 +18,6 @@ fn main() { ((iter * 5) + 2) / (4 * 16) }; - numbers[iter] = number_to_add; + numbers[iter as usize] = number_to_add; } }