Skip to main content

OptionExt

Trait OptionExt 

Source
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§

Source

fn ok_or_error<E>(self, error: E) -> Result<T>
where E: Into<Error>,

Convert None to an error

Source

fn and_then_some<F, U>(self, f: F) -> Option<U>
where F: FnOnce(T) -> Option<U>,

Chain operations on Some

Source

fn or_else_some<F>(self, f: F) -> Option<T>
where F: FnOnce() -> Option<T>,

Provide alternative on None

Source

fn filter_some<F>(self, predicate: F) -> Option<T>
where F: FnOnce(&T) -> bool,

Filter with predicate

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T> OptionExt<T> for Option<T>

Source§

fn ok_or_error<E>(self, error: E) -> Result<T>
where E: Into<Error>,

Source§

fn and_then_some<F, U>(self, f: F) -> Option<U>
where F: FnOnce(T) -> Option<U>,

Source§

fn or_else_some<F>(self, f: F) -> Option<T>
where F: FnOnce() -> Option<T>,

Source§

fn filter_some<F>(self, predicate: F) -> Option<T>
where F: FnOnce(&T) -> bool,

Implementors§