macro_rules! range {
($min:literal..=$max:literal) => { ... };
($min:literal..$max:literal) => { ... };
(<= $max:literal) => { ... };
(< $max:literal) => { ... };
(>= $min:literal) => { ... };
(> $min:literal) => { ... };
}
Expand description
Check that the value is within the specified range
§Between
Inclusive
range!(5..=20)
Exclusive
range!(5..20)
§Example
use swift_check::{ensure, range, arch::load};
let input = b"abcdefghijklmnop";
let data = load(input);
let is_lowercase_alphabet = ensure!(data, range!(b'a'..=b'z'));
assert!(is_lowercase_alphabet);
let input = b"Abcdefghijklmnop";
let data = load(input);
let is_lowercase_alphabet = ensure!(data, range!(b'a'..=b'z'));
assert!(!is_lowercase_alphabet);
let data = load(b"bbcdefghijklmnop");
// exclusive range
let is_not_a_or_z = ensure!(data, range!(b'a'..b'z'));
assert!(is_not_a_or_z);
let data = load(b"abbbbbbbbbbbbbbz");
let should_fail = ensure!(data, range!(b'a'..b'z'));
assert!(!should_fail);
§Less or Greater Than
Less than
range!(< 20)
Less than or eq
range!(<= 20)
Greater than
range!(> 20)
Greater than or eq
range!(>= 20)