[−][src]Trait tap::TapOptionOps
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);