Option

Option<T> is an enum that serves as a stand in for null values, since Rust does not have null.

enum Option<T> { None, Some(T), }

"The Option<T> enum is so useful that it’s even included in the prelude; you don’t need to bring it into scope explicitly. Its variants are also included in the prelude: You can use Some and None directly without the Option:: prefix. The Option<T> enum is still just a regular enum, and Some(T) and None are still variants of type Option<T>."

"In general, in order to use an Option<T> value, you want to have code that will handle each variant. You want some code that will run only when you have a Some(T) value, and this code is allowed to use the inner T. You want some other code to run only if you have a None value, and that code doesn’t have a T value available. The match expression is a control flow construct that does just this when used with enums: It will run different code depending on which variant of the enum it has, and that code can use the data inside the matching value."

Rust book:
https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html

Option documentation:
https://doc.rust-lang.org/std/option/enum.Option.html