diff --git a/Cargo.lock b/Cargo.lock index 9cbe5a1e..a08dee50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -592,7 +592,7 @@ dependencies = [ [[package]] name = "rustlings" -version = "2.2.0" +version = "2.2.1" dependencies = [ "assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/exercises/option/README.md b/exercises/option/README.md new file mode 100644 index 00000000..d17b79cc --- /dev/null +++ b/exercises/option/README.md @@ -0,0 +1,9 @@ +### Option + +#### Book Sections + +To learn about Option, check out these links: + +- [Option Enum Format](https://doc.rust-lang.org/stable/book/ch10-01-syntax.html#in-enum-definitions) +- [Option Module Documentation](https://doc.rust-lang.org/std/option/) +- [Option Enum Documentation](https://doc.rust-lang.org/std/option/enum.Option.html) diff --git a/exercises/option/option1.rs b/exercises/option/option1.rs new file mode 100644 index 00000000..51c39f50 --- /dev/null +++ b/exercises/option/option1.rs @@ -0,0 +1,23 @@ +// option1.rs +// Make me compile! Execute `rustlings hint option1` for hints + +// I AM NOT DONE + +// you can modify anything EXCEPT for this function's sig +fn print_number(maybe_number: Option) { + println!("printing: {}", maybe_number.unwrap()); +} + +fn main() { + print_number(13); + print_number(99); + + let mut numbers: [Option; 5]; + for iter in 0..5 { + let number_to_add: u16 = { + ((iter * 5) + 2) / (4 * 16) + }; + + numbers[iter] = number_to_add; + } +} diff --git a/info.toml b/info.toml index f067ac4b..ec8da2c8 100644 --- a/info.toml +++ b/info.toml @@ -520,6 +520,20 @@ function `unwrap_or`. Or use an `if let` statement on the result of `pop()` to both destructure a `Some` value and only print out something if we have a value!""" +[[exercises]] +name = "option1" +path = "exercises/option/option1.rs" +mode = "compile" +hint = """ +Check out some functions of Option: +is_some +is_none +unwrap + +and: +pattern matching +""" + [[exercises]] name = "result1" path = "exercises/error_handling/result1.rs"