macro_rules! if_eval_else { () => {
fn if_eval_else<P, A, B, T>(
self,
predicate: P,
change: A,
default_change: B
) -> T
where
P: FnOnce(&Self) -> bool,
A: FnOnce(Self) -> T,
B: FnOnce(Self) -> T
{
if predicate(&self) {
change(self)
} else {
default_change(self)
}
}
}}
pub(crate) use if_eval_else;