summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-06-22 12:14:04 +0200
committermo8it <mo8it@proton.me>2024-06-22 12:14:04 +0200
commitf574905b8e7d3b9320b2cb3a4c18e2039c9a771f (patch)
tree055dc706ee67c46a86f5c276c8b157bcf59c1fb3
parentbd63ece47cbb6bde9e2fe53db543a8d22a246f5e (diff)
strings2 solution
-rw-r--r--exercises/09_strings/strings2.rs12
-rw-r--r--rustlings-macros/info.toml2
-rw-r--r--solutions/09_strings/strings2.rs16
3 files changed, 22 insertions, 8 deletions
diff --git a/exercises/09_strings/strings2.rs b/exercises/09_strings/strings2.rs
index 4768278..93d9cb6 100644
--- a/exercises/09_strings/strings2.rs
+++ b/exercises/09_strings/strings2.rs
@@ -1,14 +1,14 @@
-// Make me compile without changing the function signature!
+// TODO: Fix the compiler error in the `main` function without changing this function.
+fn is_a_color_word(attempt: &str) -> bool {
+ attempt == "green" || attempt == "blue" || attempt == "red"
+}
fn main() {
- let word = String::from("green"); // Try not changing this line :)
+ let word = String::from("green"); // Don't change this line.
+
if is_a_color_word(word) {
println!("That is a color word I know!");
} else {
println!("That is not a color word I know.");
}
}
-
-fn is_a_color_word(attempt: &str) -> bool {
- attempt == "green" || attempt == "blue" || attempt == "red"
-}
diff --git a/rustlings-macros/info.toml b/rustlings-macros/info.toml
index 46a2c4b..82206fc 100644
--- a/rustlings-macros/info.toml
+++ b/rustlings-macros/info.toml
@@ -486,7 +486,7 @@ dir = "09_strings"
test = false
hint = """
Yes, it would be really easy to fix this by just changing the value bound to
-`word` to be a string slice instead of a `String`, wouldn't it?? There is a way
+`word` to be a string slice instead of a `String`, wouldn't it? There is a way
to add one character to the `if` statement, though, that will coerce the
`String` into a string slice.
diff --git a/solutions/09_strings/strings2.rs b/solutions/09_strings/strings2.rs
index 4e18198..7de311f 100644
--- a/solutions/09_strings/strings2.rs
+++ b/solutions/09_strings/strings2.rs
@@ -1 +1,15 @@
-// Solutions will be available before the stable release. Thank you for testing the beta version 🥰
+fn is_a_color_word(attempt: &str) -> bool {
+ attempt == "green" || attempt == "blue" || attempt == "red"
+}
+
+fn main() {
+ let word = String::from("green");
+
+ if is_a_color_word(&word) {
+ // ^ added to have `&String` which is automatically
+ // coerced to `&str` by the compiler.
+ println!("That is a color word I know!");
+ } else {
+ println!("That is not a color word I know.");
+ }
+}