Trait naan::impls::result::ResultExt

source ·
pub trait ResultExt<T, E>where
    Self: Sized,{
    // Required methods
    fn swap(self) -> Result<E, T>;
    fn recover<R, F>(self, f: F) -> Result<T, R>
       where F: F1Once<E, Ret = Result<T, R>>;
    fn discard_err<F, B>(self, f: F) -> Result<T, E>
       where F: for<'a> F1Once<&'a E, Ret = B>,
             B: Discard;
    fn filter<P, F>(self, pred: P, on_fail: F) -> Result<T, E>
       where P: for<'a> F1Once<&'a T, Ret = bool>,
             F: for<'a> F1Once<&'a T, Ret = E>;
    fn zip<R, F>(self, f: F) -> Result<(T, R), E>
       where F: for<'a> F1Once<&'a T, Ret = Result<R, E>>;
}

Required Methods§

source

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

Swap the Ok and Err variants

source

fn recover<R, F>(self, f: F) -> Result<T, R>where F: F1Once<E, Ret = Result<T, R>>,

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

source

fn discard_err<F, B>(self, f: F) -> Result<T, E>where F: for<'a> F1Once<&'a E, Ret = B>, B: Discard,

Perform some IO when this Result is Err

source

fn filter<P, F>(self, pred: P, on_fail: F) -> Result<T, E>where P: for<'a> F1Once<&'a T, Ret = bool>, F: for<'a> F1Once<&'a T, Ret = E>,

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

source

fn zip<R, F>(self, f: F) -> Result<(T, R), E>where F: for<'a> F1Once<&'a T, Ret = Result<R, E>>,

Apply a function from &T -> Result<R, E> to this result, short-circuiting the first error encountered, and combining T and R if the input Result and return value of the function is Ok

Implementations on Foreign Types§

source§

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

source§

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

source§

fn recover<R, F>(self, f: F) -> Result<T, R>where F: F1Once<E, Ret = Result<T, R>>,

source§

fn discard_err<F, B>(self, f: F) -> Result<T, E>where F: for<'a> F1Once<&'a E, Ret = B>, B: Discard,

source§

fn filter<P, F>(self, pred: P, on_fail: F) -> Result<T, E>where P: for<'a> F1Once<&'a T, Ret = bool>, F: for<'a> F1Once<&'a T, Ret = E>,

source§

fn zip<R, F>(self, f: F) -> Result<(T, R), E>where F: for<'a> F1Once<&'a T, Ret = Result<R, E>>,

Implementors§