1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//! Command line arguments.
/// Import command line arguments as specified 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))
);
)*
}
};
}