[][src]Trait tap::TapResultOps

pub trait TapResultOps<T, E> {
    fn tap_ok<R, F: FnOnce(&mut T) -> R>(self, f: F) -> Self;
fn tap_err<R, F: FnOnce(&mut E) -> R>(self, f: F) -> Self; }

Tap operations for Result.

Required methods

fn tap_ok<R, F: FnOnce(&mut T) -> R>(self, f: F) -> Self

Executes a closure if the value is Result::Ok(T).

Examples

let mut foo = 0;
let res: Result<u32, u32> = Ok(4);
assert_eq!(res.tap_ok(|&mut v| foo += v), Ok(4));
assert_eq!(foo, 4);
let mut foo = 0;
let res: Result<u32, u32> = Err(4);
assert_eq!(res.tap_ok(|&mut v| foo += v), Err(4));
assert_eq!(foo, 0);

fn tap_err<R, F: FnOnce(&mut E) -> R>(self, f: F) -> Self

Executes a closure if the value is Result::Err(E).

Examples

let mut foo = 0;
let res: Result<u32, u32> = Ok(4);
assert_eq!(res.tap_err(|&mut v| foo += v), Ok(4));
assert_eq!(foo, 0);
let mut foo = 0;
let res: Result<u32, u32> = Err(4);
assert_eq!(res.tap_err(|&mut v| foo += v), Err(4));
assert_eq!(foo, 4);
Loading content...

Implementations on Foreign Types

impl<T, E> TapResultOps<T, E> for Result<T, E>[src]

Loading content...

Implementors

Loading content...