Trait option_ext::OptionExt

source ·
pub trait OptionExt<T> {
    fn contains<U>(&self, x: &U) -> bool
    where
        U: PartialEq<T>
; fn map_or2<U, F: FnOnce(T) -> U>(self, f: F, default: U) -> U; fn map_or_else2<U, F: FnOnce(T) -> U, D: FnOnce() -> U>(
        self,
        f: F,
        default: D
    ) -> U; }
Expand description

Extension trait providing additional methods for Option.

Required Methods§

Returns true if the option is a Some value containing the given value.

Examples
use option_ext::OptionExt;

let x: Option<u32> = Some(2);
assert_eq!(x.contains(&2), true);

let x: Option<u32> = Some(3);
assert_eq!(x.contains(&2), false);

let x: Option<u32> = None;
assert_eq!(x.contains(&2), false);

Returns the result from applying the function to the contained value if the option is Some, or returns provided default result if the option is None.

The f argument of map_or2 is only evaluated if the option is Some. The default argument of map_or2 is always evaluated – even if the option is Some. Use map_or_else2 to avoid this.

Examples
use option_ext::OptionExt;

let x = Some("bar");
assert_eq!(x.map_or2(|v| v.len(), 42), 3);

let x: Option<&str> = None;
assert_eq!(x.map_or2(|v| v.len(), 42), 42);

Returns the result from applying the function to the contained value if the option is Some, or returns the result from evaluating the provided default function if the option is None.

The f argument of map_or_else2 is only evaluated if the option is Some. The default argument of map_or_else2 is only evaluated if the option is None. Use map_or2 to always evaluate the default argument.

Examples
use option_ext::OptionExt;

let k = 23;

let x = Some("bar");
assert_eq!(x.map_or_else2(|v| v.len(), || 2 * k), 3);

let x: Option<&str> = None;
assert_eq!(x.map_or_else2(|v| v.len(), || 2 * k), 46);

Implementations on Foreign Types§

Implementors§