Trait BoolExt

Source
pub trait BoolExt: TypeIdentity<Type = bool> + Sized {
    // Provided methods
    fn if_true<T, F>(self, some: F) -> Option<T>
       where F: FnOnce() -> T { ... }
    fn if_false<T, F>(self, some: F) -> Option<T>
       where F: FnOnce() -> T { ... }
}
Available on crate feature bools only.
Expand description

Extension trait for bool.

Provided Methods§

Source

fn if_true<T, F>(self, some: F) -> Option<T>
where F: FnOnce() -> T,

Returns Some(some()) if self is true, otherwise returns None.

This method is usable in all versions supported by this library, and is equivalent to the bool::then method, which was stabilized in Rust 1.50.

§Example
use core_extensions::BoolExt;

assert_eq!(true .if_true(|| 100 ), Some(100));
assert_eq!(false.if_true(|| 100 ), None);
Source

fn if_false<T, F>(self, some: F) -> Option<T>
where F: FnOnce() -> T,

Returns Some(some()) if self is false, otherwise returns None.

§Example
use core_extensions::BoolExt;

assert_eq!(false.if_false(|| 100 ), Some(100));
assert_eq!(true .if_false(|| 100 ), None);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl BoolExt for bool

Implementors§