Expand description
This crate provides utilities for exiting processes on errors
gracefully, leveraging anyhow
to display detailed error
context and chained messages.
§Examples
Exiting on error:
ⓘ
use anyhow::{Context, anyhow};
use eoe::ExitOnError;
Err::<(), _>(anyhow!("Mm-noom-ba-deh"))
.context("Doom-boom-ba-beh")
.context("Doo-boo-boom-ba-beh-beh")
.exit_on_error();
Show output
error: Doo-boo-boom-ba-beh-beh
caused by: Doom-boom-ba-beh
caused by: Mm-noom-ba-deh
caused by: Doom-boom-ba-beh
caused by: Mm-noom-ba-deh
Or if you prefer the word quit:
ⓘ
use anyhow::{Context, anyhow};
use eoe::QuitOnError;
Err::<(), _>(anyhow!("Mm-ba-ba-beh, mm-ba-ba-beh"))
.context("Dee-day-da, ee-day-da")
.quit_on_error();
Show output
error: Dee-day-da, ee-day-da
caused by: Mm-ba-ba-beh, mm-ba-ba-beh
caused by: Mm-ba-ba-beh, mm-ba-ba-beh
The output style is customizable:
ⓘ
use eoe::{ExitOnError, Segment, Style};
let _ = eoe::ERROR.set(Segment {
style: Style::new().bold().blue(),
value: "Watchin' some good friends screamin'",
});
let _ = eoe::SEP.set(Segment {
style: Style::new(),
value: " 😱 ",
});
let _ = eoe::MESSAGE_STYLE.set(Style::new().italic().yellow());
let _ = eoe::MESSAGE_ON_NONE.set("Let me out");
None::<()>.exit_on_error();
Show output
Watchin' some good friends screamin' 😱 Let me out
Structs§
- Segment
- A labeled message segment.
- Style
- A pre-computed style that can be applied to a struct using [
OwoColorize::style
].
Statics§
- CAUSED_
BY - The caused by label.
- ERROR
- The error label.
- MESSAGE_
ON_ NONE - The message to display when exiting on
None
. - MESSAGE_
STYLE - The style of messages.
- SEP
- The separator between the label and the message.
Traits§
- Exit
OnError - A trait for exiting processes gracefully.
- Quit
OnError - Well, if you prefer the word quit to exit.