pub trait OptionExt<T> {
// Required methods
fn ok_or_error<E>(self, error: E) -> Result<T>
where E: Into<Error>;
fn and_then_some<F, U>(self, f: F) -> Option<U>
where F: FnOnce(T) -> Option<U>;
fn or_else_some<F>(self, f: F) -> Option<T>
where F: FnOnce() -> Option<T>;
fn filter_some<F>(self, predicate: F) -> Option<T>
where F: FnOnce(&T) -> bool;
}Expand description
Extension trait for Option monadic operations
Required Methods§
Sourcefn ok_or_error<E>(self, error: E) -> Result<T>
fn ok_or_error<E>(self, error: E) -> Result<T>
Convert None to an error
Sourcefn and_then_some<F, U>(self, f: F) -> Option<U>
fn and_then_some<F, U>(self, f: F) -> Option<U>
Chain operations on Some
Sourcefn or_else_some<F>(self, f: F) -> Option<T>
fn or_else_some<F>(self, f: F) -> Option<T>
Provide alternative on None
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.