1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//! Command line argument macro. /// Import command line arguments as a requested type. #[macro_export] macro_rules! args { ($($name:ident : $type:ty); +) => { $(let $name;)* { let args: Vec<String> = std::env::args().collect(); let mut args_iter = args.iter(); $( $name = (*args_iter.next().expect( &format!("Command line argument <{}> missing.", stringify!($name)))).parse::<$type>().expect( &format!("Unable to parse <{}> into type {}.", stringify!($name), stringify!($type)) ); )* } }; }