Skip to content

Commit ba1f93c

Browse files
committed
add rust doc
1 parent a1fa95d commit ba1f93c

File tree

4 files changed

+55
-4
lines changed

4 files changed

+55
-4
lines changed

src/rule/length/equal.rs

+19-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,25 @@
11
#[macro_export]
2-
macro_rules! length_equal_rule {
2+
macro_rules! length_equal {
33
($length:literal) => {
44
paste::item! {
5+
/// A type that holds a value satisfying the LengthEqualN rule.
6+
/// # Example
7+
/// ```rust
8+
/// use refined_type::length_equal;
9+
/// length_equal!(5);
10+
///
11+
/// let target = "12345";
12+
/// let refined = LengthEqual5::new(target).unwrap();
13+
/// assert_eq!(refined.into_value(), "12345");
14+
///
15+
/// let target = "1234";
16+
/// let refined = LengthEqual5::new(target);
17+
/// assert!(refined.is_err());
18+
/// ```
519
#[allow(dead_code)]
620
pub type [<LengthEqual $length>]<ITEM> = $crate::Refined<[<LengthEqualRule $length>]<ITEM>>;
721

22+
/// Rule where the length of the input value is equal to N
823
#[allow(dead_code)]
924
pub struct [<LengthEqualRule $length>]<ITEM> {
1025
_phantom: ::std::marker::PhantomData<ITEM>,
@@ -23,16 +38,16 @@ macro_rules! length_equal_rule {
2338
}
2439
};
2540
($length:literal, $($lengths:literal),+) => {
26-
length_equal_rule!($length);
27-
length_equal_rule!($($lengths),+);
41+
length_equal!($length);
42+
length_equal!($($lengths),+);
2843
};
2944
}
3045

3146
#[cfg(test)]
3247
mod tests {
3348
use crate::result::Error;
3449

35-
length_equal_rule!(5, 10);
50+
length_equal!(5, 10);
3651

3752
#[test]
3853
fn test_length_equal_5() -> Result<(), Error> {

src/rule/length/grater.rs

+14
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,23 @@
22
macro_rules! length_greater_than {
33
($length:literal) => {
44
paste::item! {
5+
/// A type that holds a value satisfying the LengthGreaterThanN rule.
6+
/// # Example
7+
/// ```rust
8+
/// use refined_type::length_greater_than;
9+
/// length_greater_than!(5);
10+
///
11+
/// let target = "123456";
12+
/// let refined = LengthGreaterThan5::new(target).unwrap();
13+
/// assert_eq!(refined.into_value(), "123456");
14+
///
15+
/// let target = "12345";
16+
/// let refined = LengthGreaterThan5::new(target);
17+
/// assert!(refined.is_err());
518
#[allow(dead_code)]
619
pub type [<LengthGreaterThan $length>]<ITEM> = $crate::Refined<[<LengthGreaterThanRule $length>]<ITEM>>;
720

21+
/// Rule where the length of the input value is greater than N
822
#[allow(dead_code)]
923
pub struct [<LengthGreaterThanRule $length>]<ITEM> {
1024
_phantom: ::std::marker::PhantomData<ITEM>,

src/rule/length/length_definition.rs

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/// This trait is used to define the length of the target.
2+
/// # Example
3+
/// ```rust
4+
/// use refined_type::rule::LengthDefinition;
5+
/// let target = "12345";
6+
/// assert_eq!(target.length(), 5);
7+
/// ```
18
pub trait LengthDefinition {
29
fn length(&self) -> usize;
310
}

src/rule/length/less.rs

+15
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@
22
macro_rules! length_less_than {
33
($length:literal) => {
44
paste::item! {
5+
/// A type that holds a value satisfying the LengthLessThanN rule.
6+
/// # Example
7+
/// ```rust
8+
/// use refined_type::length_less_than;
9+
/// length_less_than!(5);
10+
///
11+
/// let target = "1234";
12+
/// let refined = LengthLessThan5::new(target).unwrap();
13+
/// assert_eq!(refined.into_value(), "1234");
14+
///
15+
/// let target = "12345";
16+
/// let refined = LengthLessThan5::new(target);
17+
/// assert!(refined.is_err());
18+
/// ```
519
#[allow(dead_code)]
620
pub type [<LengthLessThan $length>]<ITEM> = $crate::Refined<[<LengthLessThanRule $length>]<ITEM>>;
721

22+
/// Rule where the length of the input value is less than N
823
#[allow(dead_code)]
924
pub struct [<LengthLessThanRule $length>]<ITEM> {
1025
_phantom: ::std::marker::PhantomData<ITEM>,

0 commit comments

Comments
 (0)