macro_rules! range {
(@hasLowerBound [$($lower:tt)+] -> ..) => { ... };
(@hasLowerBound [$($lower:tt)+] -> .. $($tail:tt)+) => { ... };
(@hasLowerBound [$($lower:tt)+] -> $b:tt $($tail:tt)*) => { ... };
(@hasLowerBound [$($lower:tt)+] ->) => { ... };
(.. $($a:tt)+) => { ... };
($a:tt $($tail:tt)*) => { ... };
}
Expand description
Creates a Range
.
ยงExamples
use conjure_cp_core::{range,ast::Range};
let a = 2*10;
assert_eq!(range!(..a),Range::UnboundedL(a));
assert_eq!(range!(2*5..),Range::UnboundedR(10));
assert_eq!(range!(..10),Range::UnboundedL(10));
assert_eq!(range!(1..5),Range::Bounded(1,5));
assert_eq!(range!(Some(10).unwrap()),Range::Single(10));