@@ -7,18 +7,36 @@ use crate::Or;
77/// ```rust
88/// use refined_type::rule::composer::Imply;
99/// use refined_type::rule::{EvenRuleI8, GreaterEqualRuleI8, Rule};
10- ///
10+ ///
1111/// type IfGreaterOrEqual10ThenEven = Imply<GreaterEqualRuleI8<10>, EvenRuleI8>;
12- ///
12+ ///
1313/// for value in vec![8, 9, 10, 12] {
1414/// assert!(IfGreaterOrEqual10ThenEven::validate(value).is_ok());
1515/// }
16- ///
16+ ///
1717/// for value in vec![11, 13] {
1818/// assert!(IfGreaterOrEqual10ThenEven::validate(value).is_err());
1919/// }
2020pub type Imply < RULE1 , RULE2 > = Or ! [ Not <RULE1 >, RULE2 ] ;
2121
22+ /// This is a type that represents logical if in logic.
23+ ///
24+ /// # Example
25+ /// ```rust
26+ /// use refined_type::rule::composer::If;
27+ /// use refined_type::rule::{EvenRuleI8, GreaterEqualRuleI8, Rule};
28+ ///
29+ /// type IfGreaterOrEqual10ThenEven = If<GreaterEqualRuleI8<10>, EvenRuleI8>;
30+ ///
31+ /// for value in vec![8, 9, 10, 12] {
32+ /// assert!(IfGreaterOrEqual10ThenEven::validate(value).is_ok());
33+ /// }
34+ ///
35+ /// for value in vec![11, 13] {
36+ /// assert!(IfGreaterOrEqual10ThenEven::validate(value).is_err());
37+ /// }
38+ pub type If < CONDITION , THEN > = Imply < CONDITION , THEN > ;
39+
2240#[ cfg( test) ]
2341mod test {
2442 use crate :: rule:: composer:: Imply ;
0 commit comments