#[main]
Macro to wrap a main(args: Parser, terminated: Arc<AtomicBool>) that returns impl Future<Output = Result<(), E>>.
main(args: Parser, terminated: Arc<AtomicBool>)
impl Future<Output = Result<(), E>>
On error, it prints the error, then calls std::process::exit(e.exit_code()).
std::process::exit(e.exit_code())