From 135e5d47a7c395aece6f6022117fb20c82f2d3d4 Mon Sep 17 00:00:00 2001 From: Sanjay K Date: Thu, 5 Mar 2020 15:52:54 -0500 Subject: [PATCH] feat: added excercise for option --- Cargo.lock | 2 +- exercises/option/README.md | 9 +++++++++ exercises/option/option1.rs | 23 +++++++++++++++++++++++ info.toml | 16 +++++++++++++++- 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 exercises/option/README.md create mode 100644 exercises/option/option1.rs diff --git a/Cargo.lock b/Cargo.lock index 9cbe5a1e12..a08dee5013 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 0000000000..d17b79cc1a --- /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 0000000000..eb32ccb58b --- /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); +} + +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; + } +} \ No newline at end of file diff --git a/info.toml b/info.toml index 82c22b7a36..44905510d2 100644 --- a/info.toml +++ b/info.toml @@ -701,4 +701,18 @@ path = "exercises/conversions/from_str.rs" mode = "test" hint = """ If you've already solved try_from_into.rs, then this is almost a copy-paste. -Otherwise, go ahead and solve try_from_into.rs first.""" \ No newline at end of file +Otherwise, go ahead and solve try_from_into.rs first.""" + +[[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 +""" \ No newline at end of file