macro_rules! predicate {
($($var:ident).+$([$index:expr])? >= $bound:expr) => { ... };
($($var:ident).+$([$index:expr])? <= $bound:expr) => { ... };
($($var:ident).+$([$index:expr])? == $value:expr) => { ... };
($($var:ident).+$([$index:expr])? != $value:expr) => { ... };
}Expand description
A macro which allows for the creation of a Predicate.
ยงExample
let mut solver = Solver::default();
let x = solver.new_bounded_integer(0, 10);
let lower_bound_predicate = predicate!(x >= 5);
assert_eq!(lower_bound_predicate.get_domain(), x);
assert_eq!(lower_bound_predicate.get_right_hand_side(), 5);
let upper_bound_predicate = predicate!(x <= 5);
assert_eq!(upper_bound_predicate.get_domain(), x);
assert_eq!(upper_bound_predicate.get_right_hand_side(), 5);
let equality_predicate = predicate!(x == 5);
assert_eq!(equality_predicate.get_domain(), x);
assert_eq!(equality_predicate.get_right_hand_side(), 5);
let disequality_predicate = predicate!(x != 5);
assert_eq!(disequality_predicate.get_domain(), x);
assert_eq!(disequality_predicate.get_right_hand_side(), 5);