File tree 1 file changed +24
-2
lines changed
1 file changed +24
-2
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,29 @@ macro_rules! value_t {
40
40
Err ( _) => Err ( format!( "{} isn't a valid {}" , v, stringify!( $t) ) ) ,
41
41
}
42
42
} ,
43
- None => Err ( format!( "Argument not found" ) )
43
+ None => Err ( format!( "Argument \" {}\" not found" , $v) )
44
+ }
45
+ } ;
46
+ ( $m: ident. values_of( $v: expr) , $t: ty) => {
47
+ match $m. values_of( $v) {
48
+ Some ( ref v) => {
49
+ let mut tmp = Vec :: with_capacity( v. len( ) ) ;
50
+ let mut err = None ;
51
+ for pv in v {
52
+ match pv. parse:: <$t>( ) {
53
+ Ok ( rv) => tmp. push( rv) ,
54
+ Err ( _) => {
55
+ err = Some ( format!( "{} isn't a valid {}" , pv, stringify!( $t) ) ) ;
56
+ break
57
+ }
58
+ }
59
+ }
60
+ match err {
61
+ Some ( e) => Err ( e) ,
62
+ None => Ok ( tmp)
63
+ }
64
+ } ,
65
+ None => Err ( format!( "Argument \" {}\" not found" , $v) )
44
66
}
45
67
} ;
46
68
}
@@ -60,7 +82,7 @@ macro_rules! value_t_or_exit {
60
82
}
61
83
} ,
62
84
None => {
63
- println!( "Argument not found\n {}\n Please re-run with --help for more information" , $m. usage( ) ) ;
85
+ println!( "Argument \" {} \" not found or is not valid \n {}\n Please re-run with --help for more information" , $v , $m. usage( ) ) ;
64
86
:: std:: process:: exit( 1 ) ;
65
87
}
66
88
}
You can’t perform that action at this time.
0 commit comments