[][src]Trait tap::TapOptionOps

pub trait TapOptionOps<T> {
    fn tap_some<R, F: FnOnce(&mut T) -> R>(self, f: F) -> Self;
fn tap_none<R, F: FnOnce() -> R>(self, f: F) -> Self; }

Tap operations for Option.

Required methods

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

Executes a closure if the value is Option::Some(T).

Examples

let mut foo = 0;
let res: Option<u32> = Some(4);
assert_eq!(res.tap_some(|&mut v| foo += v), Some(4));
assert_eq!(foo, 4);
let mut foo = 0;
let res: Option<u32> = None;
assert_eq!(res.tap_some(|&mut v| foo += v), None);
assert_eq!(foo, 0);

fn tap_none<R, F: FnOnce() -> R>(self, f: F) -> Self

Executes a closure if the value is Option::None.

Examples

let mut foo = 0;
let res: Option<u32> = Some(4);
assert_eq!(res.tap_none(|| foo += 5), Some(4));
assert_eq!(foo, 0);
let mut foo = 0;
let res: Option<u32> = None;
assert_eq!(res.tap_none(|| foo += 5), None);
assert_eq!(foo, 5);
Loading content...

Implementations on Foreign Types

impl<T> TapOptionOps<T> for Option<T>[src]

Loading content...

Implementors

Loading content...