summaryrefslogtreecommitdiff
path: root/exercises/options/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/options/README.md')
-rw-r--r--exercises/options/README.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/exercises/options/README.md b/exercises/options/README.md
new file mode 100644
index 0000000..6140a16
--- /dev/null
+++ b/exercises/options/README.md
@@ -0,0 +1,20 @@
+# Options
+
+Type Option represents an optional value: every Option is either Some and contains a value, or None, and does not.
+Option types are very common in Rust code, as they have a number of uses:
+- Initial values
+- Return values for functions that are not defined over their entire input range (partial functions)
+- Return value for otherwise reporting simple errors, where None is returned on error
+- Optional struct fields
+- Struct fields that can be loaned or "taken"
+- Optional function arguments
+- Nullable pointers
+- Swapping things out of difficult situations
+
+## Further Information
+
+- [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)
+- [if let](https://doc.rust-lang.org/rust-by-example/flow_control/if_let.html)
+- [while let](https://doc.rust-lang.org/rust-by-example/flow_control/while_let.html)