skp_validator_core/schema/
impls.rs1use super::{TypeValidation, ValidationMetadata};
2
3macro_rules! impl_empty_metadata {
5 ($($t:ty),*) => {
6 $(
7 impl ValidationMetadata for $t {
8 fn get_validation_rules() -> TypeValidation {
9 TypeValidation::default()
10 }
11 }
12 )*
13 };
14}
15
16impl_empty_metadata!(String, bool, char, u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize, f32, f64);
17impl_empty_metadata!(&str);
18
19impl<T: ValidationMetadata> ValidationMetadata for Option<T> {
21 fn get_validation_rules() -> TypeValidation {
22 T::get_validation_rules()
23 }
24}
25
26impl<T: ValidationMetadata> ValidationMetadata for Vec<T> {
28 fn get_validation_rules() -> TypeValidation {
29 T::get_validation_rules()
30 }
31}
32
33impl<T: ValidationMetadata> ValidationMetadata for Box<T> {
35 fn get_validation_rules() -> TypeValidation {
36 T::get_validation_rules()
37 }
38}
39
40impl<T: ValidationMetadata> ValidationMetadata for std::rc::Rc<T> {
41 fn get_validation_rules() -> TypeValidation {
42 T::get_validation_rules()
43 }
44}
45
46impl<T: ValidationMetadata> ValidationMetadata for std::sync::Arc<T> {
47 fn get_validation_rules() -> TypeValidation {
48 T::get_validation_rules()
49 }
50}
51
52impl<K, V: ValidationMetadata> ValidationMetadata for std::collections::HashMap<K, V> {
54 fn get_validation_rules() -> TypeValidation {
55 V::get_validation_rules()
56 }
57}
58
59impl<K, V: ValidationMetadata> ValidationMetadata for std::collections::BTreeMap<K, V> {
60 fn get_validation_rules() -> TypeValidation {
61 V::get_validation_rules()
62 }
63}
64
65impl<T: ValidationMetadata> ValidationMetadata for std::collections::HashSet<T> {
66 fn get_validation_rules() -> TypeValidation {
67 T::get_validation_rules()
68 }
69}
70
71impl<T: ValidationMetadata> ValidationMetadata for std::collections::BTreeSet<T> {
72 fn get_validation_rules() -> TypeValidation {
73 T::get_validation_rules()
74 }
75}