summaryrefslogtreecommitdiff
path: root/exercises/options/options2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/options/options2.rs')
-rw-r--r--exercises/options/options2.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/exercises/options/options2.rs b/exercises/options/options2.rs
index 4e36443..337c426 100644
--- a/exercises/options/options2.rs
+++ b/exercises/options/options2.rs
@@ -18,17 +18,22 @@ mod tests {
#[test]
fn layered_option() {
- let mut range = 10;
- let mut optional_integers: Vec<Option<i8>> = Vec::new();
- for i in 0..(range + 1) {
+ let range = 10;
+ let mut optional_integers: Vec<Option<i8>> = vec![None];
+
+ for i in 1..(range + 1) {
optional_integers.push(Some(i));
}
+ let mut cursor = range;
+
// TODO: make this a while let statement - remember that vector.pop also adds another layer of Option<T>
- // You can stack `Option<T>`'s into while let and if let
+ // You can stack `Option<T>`s into while let and if let
integer = optional_integers.pop() {
- assert_eq!(integer, range);
- range -= 1;
+ assert_eq!(integer, cursor);
+ cursor -= 1;
}
+
+ assert_eq!(cursor, 0);
}
}