MCPcopy Index your code
hub / github.com/RustPython/RustPython / parse_argument

Method parse_argument

crates/derive-impl/src/from_args.rs:79–110  ·  view source on GitHub ↗
(&mut self, meta: ParseNestedMeta<'_>)

Source from the content-addressed store, hash-verified

77 }
78
79 fn parse_argument(&mut self, meta: ParseNestedMeta<'_>) -> Result<()> {
80 if let ParameterKind::Flatten = self.kind {
81 return Err(meta.error("can't put additional arguments on a flatten arg"));
82 }
83 if meta.path.is_ident("default") && meta.input.peek(Token![=]) {
84 if matches!(self.default, Some(Some(_))) {
85 return Err(meta.error("Default already set"));
86 }
87 let val = meta.value()?;
88 self.default = Some(Some(val.parse()?))
89 } else if meta.path.is_ident("default") || meta.path.is_ident("optional") {
90 if self.default.is_none() {
91 self.default = Some(None);
92 }
93 } else if meta.path.is_ident("name") {
94 if self.name.is_some() {
95 return Err(meta.error("already have a name"));
96 }
97 let val = meta.value()?.parse::<syn::LitStr>()?;
98 self.name = Some(val.value())
99 } else if meta.path.is_ident("error_msg") {
100 if self.error_msg.is_some() {
101 return Err(meta.error("already have an error_msg"));
102 }
103 let val = meta.value()?.parse::<syn::LitStr>()?;
104 self.error_msg = Some(val.value())
105 } else {
106 return Err(meta.error("Unrecognized pyarg attribute"));
107 }
108
109 Ok(())
110 }
111}
112
113impl TryFrom<&Field> for ArgAttribute {

Callers 1

from_attributeMethod · 0.80

Calls 7

ErrClass · 0.50
SomeClass · 0.50
errorMethod · 0.45
peekMethod · 0.45
valueMethod · 0.45
parseMethod · 0.45
is_noneMethod · 0.45

Tested by

no test coverage detected