@@ -145,71 +145,52 @@ impl<'a, 'b> Arg<'a, 'b> {
145
145
let mut a = Arg :: with_name ( name_str) ;
146
146
let arg_settings = y. get ( name_yml) . unwrap ( ) . as_hash ( ) . unwrap ( ) ;
147
147
148
- macro_rules! vec_or_str {
149
- ( $v: ident, $a: ident, $c: ident) => { {
150
- let maybe_vec = $v. as_vec( ) ;
151
- if let Some ( vec) = maybe_vec {
152
- for ys in vec {
153
- if let Some ( s) = ys. as_str( ) {
154
- $a = $a. $c( s) ;
155
- }
156
- }
157
- } else {
158
- if let Some ( s) = $v. as_str( ) {
159
- $a = $a. $c( s) ;
160
- }
161
- }
162
- $a
163
- }
164
- } ;
165
- }
166
-
167
148
for ( k, v) in arg_settings. iter ( ) {
168
149
a = match k. as_str ( ) . unwrap ( ) {
169
- "short" => a . short ( v . as_str ( ) . unwrap ( ) ) ,
170
- "long" => a . long ( v . as_str ( ) . unwrap ( ) ) ,
171
- "help" => a . help ( v . as_str ( ) . unwrap ( ) ) ,
172
- "required" => a . required ( v . as_bool ( ) . unwrap ( ) ) ,
173
- "takes_value" => a . takes_value ( v . as_bool ( ) . unwrap ( ) ) ,
174
- "index" => a . index ( v . as_i64 ( ) . unwrap ( ) as u64 ) ,
175
- "global" => a . global ( v . as_bool ( ) . unwrap ( ) ) ,
176
- "multiple" => a . multiple ( v . as_bool ( ) . unwrap ( ) ) ,
177
- "hidden" => a . hidden ( v . as_bool ( ) . unwrap ( ) ) ,
178
- "next_line_help" => a . next_line_help ( v . as_bool ( ) . unwrap ( ) ) ,
179
- "empty_values" => a . empty_values ( v . as_bool ( ) . unwrap ( ) ) ,
180
- "group" => a . group ( v . as_str ( ) . unwrap ( ) ) ,
181
- "number_of_values" => a . number_of_values ( v . as_i64 ( ) . unwrap ( ) as u64 ) ,
182
- "max_values" => a . max_values ( v . as_i64 ( ) . unwrap ( ) as u64 ) ,
183
- "min_values" => a . min_values ( v . as_i64 ( ) . unwrap ( ) as u64 ) ,
184
- "value_name" => a . value_name ( v . as_str ( ) . unwrap ( ) ) ,
185
- "use_delimiter" => a . use_delimiter ( v . as_bool ( ) . unwrap ( ) ) ,
186
- "value_delimiter" => a . value_delimiter ( v . as_str ( ) . unwrap ( ) ) ,
187
- "required_unless" => a . required_unless ( v . as_str ( ) . unwrap ( ) ) ,
188
- "display_order" => a . display_order ( v . as_i64 ( ) . unwrap ( ) as usize ) ,
189
- "default_value" => a . default_value ( v . as_str ( ) . unwrap ( ) ) ,
150
+ "short" => yaml_to_str ! ( a , v , short ) ,
151
+ "long" => yaml_to_str ! ( a , v , long ) ,
152
+ "help" => yaml_to_str ! ( a , v , help ) ,
153
+ "required" => yaml_to_bool ! ( a , v , required ) ,
154
+ "takes_value" => yaml_to_bool ! ( a , v , takes_value ) ,
155
+ "index" => yaml_to_u64 ! ( a , v , index ) ,
156
+ "global" => yaml_to_bool ! ( a , v , global ) ,
157
+ "multiple" => yaml_to_bool ! ( a , v , multiple ) ,
158
+ "hidden" => yaml_to_bool ! ( a , v , hidden ) ,
159
+ "next_line_help" => yaml_to_bool ! ( a , v , next_line_help ) ,
160
+ "empty_values" => yaml_to_bool ! ( a , v , empty_values ) ,
161
+ "group" => yaml_to_str ! ( a , v , group ) ,
162
+ "number_of_values" => yaml_to_u64 ! ( a , v , number_of_values ) ,
163
+ "max_values" => yaml_to_u64 ! ( a , v , max_values ) ,
164
+ "min_values" => yaml_to_u64 ! ( a , v , min_values ) ,
165
+ "value_name" => yaml_to_str ! ( a , v , value_name ) ,
166
+ "use_delimiter" => yaml_to_bool ! ( a , v , use_delimiter ) ,
167
+ "value_delimiter" => yaml_to_str ! ( a , v , value_delimiter ) ,
168
+ "required_unless" => yaml_to_str ! ( a , v , required_unless ) ,
169
+ "display_order" => yaml_to_usize ! ( a , v , display_order ) ,
170
+ "default_value" => yaml_to_str ! ( a , v , default_value ) ,
190
171
"value_names" => {
191
- vec_or_str ! ( v, a, value_name)
172
+ yaml_vec_or_str ! ( v, a, value_name)
192
173
}
193
174
"groups" => {
194
- vec_or_str ! ( v, a, group)
175
+ yaml_vec_or_str ! ( v, a, group)
195
176
}
196
177
"requires" => {
197
- vec_or_str ! ( v, a, requires)
178
+ yaml_vec_or_str ! ( v, a, requires)
198
179
}
199
180
"conflicts_with" => {
200
- vec_or_str ! ( v, a, conflicts_with)
181
+ yaml_vec_or_str ! ( v, a, conflicts_with)
201
182
}
202
183
"overrides_with" => {
203
- vec_or_str ! ( v, a, overrides_with)
184
+ yaml_vec_or_str ! ( v, a, overrides_with)
204
185
}
205
186
"possible_values" => {
206
- vec_or_str ! ( v, a, possible_value)
187
+ yaml_vec_or_str ! ( v, a, possible_value)
207
188
}
208
189
"required_unless_one" => {
209
- vec_or_str ! ( v, a, required_unless)
190
+ yaml_vec_or_str ! ( v, a, required_unless)
210
191
}
211
192
"required_unless_all" => {
212
- a = vec_or_str ! ( v, a, required_unless) ;
193
+ a = yaml_vec_or_str ! ( v, a, required_unless) ;
213
194
a. setb ( ArgSettings :: RequiredUnlessAll ) ;
214
195
a
215
196
}
0 commit comments