Skip to main content

FlatOk

Trait FlatOk 

Source
pub trait FlatOk<T> {
    // Required methods
    fn flat_ok(self) -> Option<T>;
    fn flat_ok_or<E>(self, err: E) -> Result<T, E>;
    fn flat_ok_or_else<E, F: FnOnce() -> E>(self, err: F) -> Result<T, E>;
}

Required Methods§

Source

fn flat_ok(self) -> Option<T>

Equivalent to .transpose().ok().flatten()

Source

fn flat_ok_or<E>(self, err: E) -> Result<T, E>

Equivalent to .transpose().ok().flatten().ok_or(…)

Source

fn flat_ok_or_else<E, F: FnOnce() -> E>(self, err: F) -> Result<T, E>

Equivalent to .transpose().ok().flatten().ok_or_else(…)

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.

Implementations on Foreign Types§

Source§

impl<T, E> FlatOk<T> for Option<Result<T, E>>

Source§

fn flat_ok(self) -> Option<T>

Source§

fn flat_ok_or<Ep>(self, err: Ep) -> Result<T, Ep>

Source§

fn flat_ok_or_else<Ep, F: FnOnce() -> Ep>(self, err: F) -> Result<T, Ep>

Implementors§

Source§

impl<T, E> FlatOk<T> for Result<Option<T>, E>