serde_valid/validation/
array.rs1mod max_items;
2mod min_items;
3mod unique_items;
4
5pub use max_items::ValidateMaxItems;
6pub use min_items::ValidateMinItems;
7pub use unique_items::ValidateUniqueItems;
8
9use crate::{MaxItemsError, MinItemsError};
10
11macro_rules! impl_validate_array_length_items {
12 ($ErrorType:ident) => {
13 paste::paste! {
14 impl<T> [<Validate $ErrorType>] for Option<T>
15 where
16 T: [<Validate $ErrorType>],
17 {
18 fn [<validate_ $ErrorType:snake>] (&self, limit: usize) -> Result<(), [<$ErrorType Error>]> {
19 match self {
20 Some(value) => value.[<validate_ $ErrorType:snake>](limit),
21 None => Ok(()),
22 }
23 }
24 }
25 }
26 };
27}
28
29impl_validate_array_length_items!(MaxItems);
30impl_validate_array_length_items!(MinItems);