Trait toad_common::result::ResultExt
source · 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§
sourcefn bind<R>(self, f: impl FnOnce(T) -> Result<R, E>) -> Result<R, E>
fn bind<R>(self, f: impl FnOnce(T) -> Result<R, E>) -> Result<R, E>
Alias for [Result.and_then]
sourcefn recover<R>(self, f: impl FnOnce(E) -> Result<T, R>) -> Result<T, R>
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
sourcefn try_perform(self, f: impl FnOnce(&T) -> Result<(), E>) -> Result<T, E>
fn try_perform(self, f: impl FnOnce(&T) -> Result<(), E>) -> Result<T, E>
Attempt to perform some fallible IO
sourcefn perform_err(self, f: impl FnOnce(&E)) -> Result<T, E>
fn perform_err(self, f: impl FnOnce(&E)) -> Result<T, E>
Perform some IO when this Result is Err
sourcefn perform_mut(self, f: impl FnOnce(&mut T)) -> Result<T, E>
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