anodized-logic 0.5.1

Helps Anodized embed non-trivial elements of logic into Rust code
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
pub use crate::implies;

/// Material implication: `a --> b`.
///
/// Note that `implies!(a, b)` is equivalent to `!a || b`, evaluating `b` lazily. Because function
///   arguments are evaluated eagerly, `implies` must be a macro.
#[macro_export]
macro_rules! implies {
    ($p:expr, $q:expr) => {
        if $p { $q } else { true }
    };
}