summaryrefslogtreecommitdiff
path: root/rustlings/exercises/12_options
diff options
context:
space:
mode:
Diffstat (limited to 'rustlings/exercises/12_options')
-rw-r--r--rustlings/exercises/12_options/options1.rs10
-rw-r--r--rustlings/exercises/12_options/options2.rs4
-rw-r--r--rustlings/exercises/12_options/options3.rs2
3 files changed, 11 insertions, 5 deletions
diff --git a/rustlings/exercises/12_options/options1.rs b/rustlings/exercises/12_options/options1.rs
index d0c412a..be97952 100644
--- a/rustlings/exercises/12_options/options1.rs
+++ b/rustlings/exercises/12_options/options1.rs
@@ -3,7 +3,13 @@
// someone eats it all, so no ice cream is left (value 0). Return `None` if
// `hour_of_day` is higher than 23.
fn maybe_ice_cream(hour_of_day: u16) -> Option<u16> {
- // TODO: Complete the function body.
+ if hour_of_day >= 24 {
+ return None;
+ }
+ if hour_of_day >= 22 {
+ return Some(0);
+ }
+ Some(5)
}
fn main() {
@@ -18,7 +24,7 @@ mod tests {
fn raw_value() {
// TODO: Fix this test. How do you get the value contained in the
// Option?
- let ice_creams = maybe_ice_cream(12);
+ let ice_creams = maybe_ice_cream(12).unwrap();
assert_eq!(ice_creams, 5); // Don't change this line.
}
diff --git a/rustlings/exercises/12_options/options2.rs b/rustlings/exercises/12_options/options2.rs
index 07c27c6..1039d61 100644
--- a/rustlings/exercises/12_options/options2.rs
+++ b/rustlings/exercises/12_options/options2.rs
@@ -10,7 +10,7 @@ mod tests {
let optional_target = Some(target);
// TODO: Make this an if-let statement whose value is `Some`.
- word = optional_target {
+ if let Some(word) = optional_target {
assert_eq!(word, target);
}
}
@@ -29,7 +29,7 @@ mod tests {
// TODO: Make this a while-let statement. Remember that `Vec::pop()`
// adds another layer of `Option`. You can do nested pattern matching
// in if-let and while-let statements.
- integer = optional_integers.pop() {
+ while let Some(Some(integer)) = optional_integers.pop() {
assert_eq!(integer, cursor);
cursor -= 1;
}
diff --git a/rustlings/exercises/12_options/options3.rs b/rustlings/exercises/12_options/options3.rs
index c97b1d3..aecb7a5 100644
--- a/rustlings/exercises/12_options/options3.rs
+++ b/rustlings/exercises/12_options/options3.rs
@@ -9,7 +9,7 @@ fn main() {
// TODO: Fix the compiler error by adding something to this match statement.
match optional_point {
- Some(p) => println!("Coordinates are {},{}", p.x, p.y),
+ Some(ref p) => println!("Coordinates are {},{}", p.x, p.y),
_ => panic!("No match!"),
}