summaryrefslogtreecommitdiff
path: root/rustlings/exercises/12_options/options1.rs
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-09-14 17:15:13 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-09-14 17:28:26 -0500
commitbf66df1a16461ef1ee50510803a3097914ffcb82 (patch)
tree15a13e34a794ec182c1e4c4507645ac43e07c6bc /rustlings/exercises/12_options/options1.rs
parentb6245506460bd854ab32b1b6d2ecc51f5be82ef9 (diff)
Add rustlings
Diffstat (limited to 'rustlings/exercises/12_options/options1.rs')
-rw-r--r--rustlings/exercises/12_options/options1.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/rustlings/exercises/12_options/options1.rs b/rustlings/exercises/12_options/options1.rs
new file mode 100644
index 0000000..d0c412a
--- /dev/null
+++ b/rustlings/exercises/12_options/options1.rs
@@ -0,0 +1,36 @@
+// This function returns how much ice cream there is left in the fridge.
+// If it's before 22:00 (24-hour system), then 5 scoops are left. At 22:00,
+// 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.
+}
+
+fn main() {
+ // You can optionally experiment here.
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn raw_value() {
+ // TODO: Fix this test. How do you get the value contained in the
+ // Option?
+ let ice_creams = maybe_ice_cream(12);
+
+ assert_eq!(ice_creams, 5); // Don't change this line.
+ }
+
+ #[test]
+ fn check_ice_cream() {
+ assert_eq!(maybe_ice_cream(0), Some(5));
+ assert_eq!(maybe_ice_cream(9), Some(5));
+ assert_eq!(maybe_ice_cream(18), Some(5));
+ assert_eq!(maybe_ice_cream(22), Some(0));
+ assert_eq!(maybe_ice_cream(23), Some(0));
+ assert_eq!(maybe_ice_cream(24), None);
+ assert_eq!(maybe_ice_cream(25), None);
+ }
+}