#![feature(associated_type_defaults)] #[macro_use] extern crate lazy_static; #[macro_export] macro_rules! unwrap { ($err:expr) => { match $err { Ok(v) => v, Err(e) => { eprintln!("Error: {}", e); std::process::exit(1); } } }; } mod arg; mod conv; fn main() { use arg::Operation; match unwrap!(arg::parse_args()) { Operation::Help => arg::usage(), Operation::Convert(unit, from) => { unwrap!(conv::dispatch_out(unit, from)); }, } }