MCPcopy Create free account
hub / github.com/biblius/validify / collect_modifiers

Function collect_modifiers

validify_derive/src/validify/impl.rs:59–106  ·  view source on GitHub ↗
(field: &syn::Field)

Source from the content-addressed store, hash-verified

57}
58
59pub fn collect_modifiers(field: &syn::Field) -> Vec<Modifier> {
60 let mut modifiers = vec![];
61 for attr in &field.attrs {
62 // Nest validified fields
63 if attr.path().is_ident(VALIDIFY) {
64 modifiers.push(Modifier::Nested);
65 continue;
66 }
67
68 if !attr.path().is_ident(MODIFY) {
69 continue;
70 }
71
72 attr.parse_nested_meta(|meta| {
73 if meta.path.is_ident(CUSTOM_MODIFIER) {
74 let content;
75 parenthesized!(content in meta.input);
76 let path: syn::Path = content.parse()?;
77 modifiers.push(Modifier::Custom { function: path });
78 return Ok(());
79 }
80
81 if meta.path.is_ident(TRIM_MODIFIER) {
82 modifiers.push(Modifier::Trim);
83 return Ok(());
84 }
85
86 if meta.path.is_ident(LOWERCASE_MODIFIER) {
87 modifiers.push(Modifier::Lowercase);
88 return Ok(());
89 }
90
91 if meta.path.is_ident(UPPERCASE_MODIFIER) {
92 modifiers.push(Modifier::Uppercase);
93 return Ok(());
94 }
95
96 if meta.path.is_ident(CAPITALIZE_MODIFIER) {
97 modifiers.push(Modifier::Capitalize);
98 return Ok(());
99 }
100
101 Err(meta.error("Unrecognized modify parameter"))
102 })
103 .unwrap_or_else(|e| abort!(e.span(), e));
104 }
105 modifiers
106}

Callers 1

collectMethod · 0.85

Calls 1

parseMethod · 0.80

Tested by

no test coverage detected