pub trait ResultExt<T, E>: Sized {
    fn bind<R>(self, f: impl FnOnce(T) -> Result<R, E>) -> Result<R, E>;
    fn swap(self) -> Result<E, T>;
    fn recover<R>(self, f: impl FnOnce(E) -> Result<T, R>) -> Result<T, R>;
    fn try_perform(self, f: impl FnOnce(&T) -> Result<(), E>) -> Result<T, E>;
    fn perform_err(self, f: impl FnOnce(&E)) -> Result<T, E>;
    fn perform(self, f: impl FnOnce(&T)) -> Result<T, E>;
    fn perform_mut(self, f: impl FnOnce(&mut T)) -> Result<T, E>;
    fn filter(
        self,
        pred: impl FnOnce(&T) -> bool,
        on_fail: impl FnOnce(&T) -> E
    ) -> Result<T, E>; fn tupled<R>(self, f: impl FnOnce(&T) -> Result<R, E>) -> Result<(T, R), E> { ... } fn two<B>(a: Result<T, E>, b: Result<B, E>) -> Result<(T, B), E> { ... } }
Expand description

Extensions to Result

Required Methods§

source

fn bind<R>(self, f: impl FnOnce(T) -> Result<R, E>) -> Result<R, E>

Alias for [Result.and_then]

source

fn swap(self) -> Result<E, T>

Swap the Ok and Err variants

source

fn recover<R>(self, f: impl FnOnce(E) -> Result<T, R>) -> Result<T, R>

Allows turning an Err back into Ok by binding on the Err variant

source

fn try_perform(self, f: impl FnOnce(&T) -> Result<(), E>) -> Result<T, E>

Attempt to perform some fallible IO

source

fn perform_err(self, f: impl FnOnce(&E)) -> Result<T, E>

Perform some IO when this Result is Err

source

fn perform(self, f: impl FnOnce(&T)) -> Result<T, E>

Perform some IO when this Result is Ok

source

fn perform_mut(self, f: impl FnOnce(&mut T)) -> Result<T, E>

Perform some IO mutating the data contained in the Ok of this Result

source

fn filter(
    self,
    pred: impl FnOnce(&T) -> bool,
    on_fail: impl FnOnce(&T) -> E
) -> Result<T, E>

Test the data in Ok and turn it into an Err if it doesn’t pass a predicate

Provided Methods§

source

fn tupled<R>(self, f: impl FnOnce(&T) -> Result<R, E>) -> Result<(T, R), E>

Do some fallible IO that resolves in a value and combine Oks

source

fn two<B>(a: Result<T, E>, b: Result<B, E>) -> Result<(T, B), E>

Boolean AND

Implementations on Foreign Types§

source§

impl<T, E> ResultExt<T, E> for Result<T, E>

source§

fn bind<R>(self, f: impl FnOnce(T) -> Result<R, E>) -> Result<R, E>

source§

fn recover<R>(self, f: impl FnOnce(E) -> Result<T, R>) -> Result<T, R>

source§

fn try_perform(self, f: impl FnOnce(&T) -> Result<(), E>) -> Result<T, E>

source§

fn perform(self, f: impl FnOnce(&T)) -> Result<T, E>

source§

fn perform_err(self, f: impl FnOnce(&E)) -> Result<T, E>

source§

fn perform_mut(self, f: impl FnOnce(&mut T)) -> Result<T, E>

source§

fn filter(
    self,
    pred: impl FnOnce(&T) -> bool,
    on_fail: impl FnOnce(&T) -> E
) -> Result<T, E>

source§

fn swap(self) -> Result<E, T>

Implementors§