File tree 1 file changed +11
-6
lines changed
1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -146,14 +146,19 @@ fn generate_field(field: &Field) -> TokenStream2 {
146
146
quote ! {
147
147
. unwrap_or_else( || #default )
148
148
}
149
+ } else if attr. optional {
150
+ quote ! {
151
+ . map( crate :: function:: OptionalArg :: Present )
152
+ . unwrap_or( crate :: function:: OptionalArg :: Missing )
153
+ }
149
154
} else {
150
155
let err = match attr. kind {
151
- ArgKind :: Positional | ArgKind :: PositionalKeyword => {
152
- quote ! ( crate :: function:: ArgumentError :: TooFewArgs )
153
- }
154
- ArgKind :: Keyword => quote ! ( crate :: function :: ArgumentError :: RequiredKeywordArgument (
155
- stringify !( #name)
156
- ) ) ,
156
+ ArgKind :: Positional | ArgKind :: PositionalKeyword => quote ! {
157
+ crate :: function:: ArgumentError :: TooFewArgs
158
+ } ,
159
+ ArgKind :: Keyword => quote ! {
160
+ crate :: function :: ArgumentError :: RequiredKeywordArgument ( tringify !( #name) )
161
+ } ,
157
162
} ;
158
163
quote ! {
159
164
. ok_or_else( || #err) ?
You can’t perform that action at this time.
0 commit comments