Crate materially

source ·
Expand description

A macro for material implication.

a => b (“a implies b”) means !a || b.

§Examples

use materially::implies as i;

assert!(i!(false => true));
assert!(i!(false => false));
assert!(i!(true => true));
assert!(!i!(true => false));

// Implication is right-associative
assert!(i!(false => false => false));

// let-chains style syntax is also supported
assert!(i!(let Some(a) = Some(17) => a > 3 => let None = Some(17) => false));

Macros§