@@ -140,9 +140,7 @@ pub fn optflag(name: &str) -> Opt {
140
140
return Opt { name : mkname ( name) , hasarg : No , occur : Optional } ;
141
141
}
142
142
143
- /** Create an option that is optional, does not take an argument,
144
- * and may occur multiple times.
145
- */
143
+ /// Create an option that is optional and does not take an argument
146
144
pub fn optflagmulti ( name : & str ) -> Opt {
147
145
return Opt { name : mkname ( name) , hasarg : No , occur : Multi } ;
148
146
}
@@ -371,14 +369,7 @@ fn opt_vals(mm: &Matches, nm: &str) -> ~[Optval] {
371
369
} ;
372
370
}
373
371
374
- fn opt_val( mm: & Matches , nm: & str ) -> Option <Optval > {
375
- let vals = opt_vals ( mm, nm) ;
376
- if ( vals. is_empty ( ) ) {
377
- None
378
- } else {
379
- Some ( opt_vals ( mm, nm) [ 0 ] . clone ( ) )
380
- }
381
- }
372
+ fn opt_val( mm: & Matches , nm: & str ) -> Optval { opt_vals ( mm, nm) [ 0 ] . clone ( ) }
382
373
383
374
/// Returns true if an option was matched
384
375
pub fn opt_present ( mm : & Matches , nm : & str ) -> bool {
@@ -409,10 +400,7 @@ pub fn opts_present(mm: &Matches, names: &[~str]) -> bool {
409
400
* argument
410
401
*/
411
402
pub fn opt_str ( mm : & Matches , nm : & str ) -> ~str {
412
- return match opt_val ( mm, nm) {
413
- Some ( Val ( s) ) => s,
414
- _ => fail ! ( )
415
- } ;
403
+ return match opt_val ( mm, nm) { Val ( s) => s, _ => fail ! ( ) } ;
416
404
}
417
405
418
406
/**
@@ -424,7 +412,7 @@ pub fn opt_str(mm: &Matches, nm: &str) -> ~str {
424
412
pub fn opts_str( mm : & Matches , names : & [ ~str ] ) -> ~str {
425
413
for names. iter( ) . advance |nm| {
426
414
match opt_val( mm, * nm) {
427
- Some ( Val ( ref s) ) => return ( * s) . clone( ) ,
415
+ Val ( ref s) => return ( * s) . clone( ) ,
428
416
_ => ( )
429
417
}
430
418
}
@@ -1330,41 +1318,24 @@ mod tests {
1330
1318
1331
1319
#[test]
1332
1320
fn test_multi() {
1321
+ let args = ~[~" -e", ~" foo", ~" --encrypt", ~" foo"];
1333
1322
let opts = ~[optopt(" e"), optopt(" encrypt"), optopt(" f")];
1334
-
1335
- let args_single = ~[~" -e", ~" foo"];
1336
- let matches_single = &match getopts(args_single, opts) {
1337
- result::Ok(m) => m,
1338
- result::Err(_) => fail!()
1339
- };
1340
- assert!(opts_present(matches_single, [~" e"]));
1341
- assert!(opts_present(matches_single, [~" encrypt", ~" e"]));
1342
- assert!(opts_present(matches_single, [~" e", ~" encrypt"]));
1343
- assert!(!opts_present(matches_single, [~" encrypt"]));
1344
- assert!(!opts_present(matches_single, [~" thing"]));
1345
- assert!(!opts_present(matches_single, []));
1346
-
1347
- assert_eq!(opts_str(matches_single, [~" e"]), ~" foo");
1348
- assert_eq!(opts_str(matches_single, [~" e", ~" encrypt"]), ~" foo");
1349
- assert_eq!(opts_str(matches_single, [~" encrypt", ~" e"]), ~" foo");
1350
-
1351
- let args_both = ~[~" -e", ~" foo", ~" --encrypt", ~" foo"];
1352
- let matches_both = &match getopts(args_both, opts) {
1323
+ let matches = &match getopts(args, opts) {
1353
1324
result::Ok(m) => m,
1354
1325
result::Err(_) => fail!()
1355
1326
};
1356
- assert!(opts_present(matches_both , [~" e"]));
1357
- assert!(opts_present(matches_both , [~" encrypt"]));
1358
- assert!(opts_present(matches_both , [~" encrypt", ~" e"]));
1359
- assert!(opts_present(matches_both , [~" e", ~" encrypt"]));
1360
- assert!(!opts_present(matches_both , [~" f"]));
1361
- assert!(!opts_present(matches_both , [~" thing"]));
1362
- assert!(!opts_present(matches_both , []));
1363
-
1364
- assert_eq!(opts_str(matches_both , [~" e"]), ~" foo");
1365
- assert_eq!(opts_str(matches_both , [~" encrypt"]), ~" foo");
1366
- assert_eq!(opts_str(matches_both , [~" e", ~" encrypt"]), ~" foo");
1367
- assert_eq!(opts_str(matches_both , [~" encrypt", ~" e"]), ~" foo");
1327
+ assert!(opts_present(matches , [~" e"]));
1328
+ assert!(opts_present(matches , [~" encrypt"]));
1329
+ assert!(opts_present(matches , [~" encrypt", ~" e"]));
1330
+ assert!(opts_present(matches , [~" e", ~" encrypt"]));
1331
+ assert!(!opts_present(matches , [~" f"]));
1332
+ assert!(!opts_present(matches , [~" thing"]));
1333
+ assert!(!opts_present(matches , []));
1334
+
1335
+ assert_eq!(opts_str(matches , [~" e"]), ~" foo");
1336
+ assert_eq!(opts_str(matches , [~" encrypt"]), ~" foo");
1337
+ assert_eq!(opts_str(matches , [~" e", ~" encrypt"]), ~" foo");
1338
+ assert_eq!(opts_str(matches , [~" encrypt", ~" e"]), ~" foo");
1368
1339
}
1369
1340
1370
1341
#[test]
0 commit comments