predicate

Macro predicate 

Source
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);