Skip to content

Commit d610eee

Browse files
committed
implement less equal and greater equal
1 parent 03ffcd4 commit d610eee

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

src/rule/number.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
mod equal;
22
mod even;
33
mod greater;
4+
mod greater_equal;
45
mod less;
56
mod less_equal;
67
mod min_max;
78
mod odd;
8-
mod greater_than;
99

1010
pub use equal::*;
1111
pub use even::*;
1212
pub use greater::*;
13+
pub use greater_equal::*;
1314
pub use less::*;
1415
pub use less_equal::*;
1516
pub use min_max::*;

src/rule/number/greater_equal.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
macro_rules! declare_greater_equal_rule {
2+
($ty: ty) => {
3+
$crate::paste::item! {
4+
pub type [<GreaterEqual $ty:camel>]<const N: $ty> = $crate::Refined<[<GreaterEqualRule $ty:camel>]<N>>;
5+
6+
pub type [<GreaterEqualRule $ty:camel>]<const N: $ty> = $crate::Or![$crate::rule::[<EqualRule $ty:camel>]<N>, $crate::rule::[<GreaterRule $ty:camel>]<N>];
7+
}
8+
};
9+
($t: ty, $($ts: ty),+) => {
10+
declare_greater_equal_rule!($t);
11+
declare_greater_equal_rule!($($ts), +);
12+
};
13+
}
14+
15+
declare_greater_equal_rule!(u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize);
16+
17+
#[cfg(test)]
18+
mod test {
19+
use crate::rule::GreaterEqualU8;
20+
21+
#[test]
22+
fn test_greater_equal_than_50u8_ok() {
23+
let greater_equal_result = GreaterEqualU8::<50>::new(50);
24+
assert!(greater_equal_result.is_ok());
25+
}
26+
27+
#[test]
28+
fn test_greater_equal_than_50u8_err() {
29+
let greater_equal_result = GreaterEqualU8::<50>::new(49);
30+
assert!(greater_equal_result.is_err());
31+
}
32+
}

src/rule/number/greater_than.rs

Whitespace-only changes.

src/rule/number/less_equal.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ macro_rules! declare_less_equal_rule {
33
$crate::paste::item! {
44
pub type [<LessEqual $ty:camel>]<const N: $ty> = $crate::Refined<[<LessEqualRule $ty:camel>]<N>>;
55

6-
pub type [<LessEqualRule $ty:camel>]<const N: $ty> = $crate::And![$crate::rule::[<EqualRule $ty:camel>]<N>, $crate::rule::[<LessRule $ty:camel>]<N>];
6+
pub type [<LessEqualRule $ty:camel>]<const N: $ty> = $crate::Or![$crate::rule::[<EqualRule $ty:camel>]<N>, $crate::rule::[<LessRule $ty:camel>]<N>];
77
}
88
};
99
($t: ty, $($ts: ty),+) => {

0 commit comments

Comments
 (0)