//! Trait BoolExt /// Boolean extensions and chain.starters pub trait BoolExt { fn or T>(self, f: F) -> Option; fn or_some(self, t: T) -> Option; } impl BoolExt for bool { #[inline] fn or T>(self, f: F) -> Option { (!self).then(f) } #[inline] fn or_some(self, t: T) -> Option { (!self).then_some(t) } }