wrap_report_exit/
wrap_report_exit.rs1use narrate::{report, CliError, Error, ErrorWrap, ExitCode, Result};
7
8fn main() {
9 let res = config_error()
10 .wrap(CliError::Config)
11 .add_help("See https://docs.example.rs/config for more info");
12
13 if let Err(ref err) = res {
14 report::err_full(err);
15 std::process::exit(err.exit_code());
16 }
17}
18
19fn config_error() -> Result<(), Error> {
25 let error = narrate::error_from!("missing key: 'port'");
27 let error = error.wrap("bad config file `/app/config.toml`");
29
30 Err(error)
31}