Crate terminator
source ·Expand description
§terminator
Rust library to provide fancy formatting for errors and backtraces. Based of and
inspired by color-eyre. It is intended
to be used in binary applications, not as error type in libraries.
§Usage
To display pretty errors from your main function, you can just switch your error type
to terminator::Terminator. However, to customise the appearance and behaviour of
errors or to pretty print panics, set up your main function as below:
fn main() -> Result<(), terminator::Terminator> {
terminator::Config::new()
// modify config if you so wish
// and install config (setting up panic hook)
.install()?;
Ok(())
}§Feature flags
Terminator can bundle support for common error trait object libraries like
anyhow and eyre.
Setting respective flags will enable conversions and ? operator for Terminator.
By default, Terminator is backed by Box<dyn Error>.
Following flags are provided:
- anyhow: use
anyhow::Erroras backend forTerminator(conflicts with eyre feature) - eyre: use
eyre::Reportas backend forTerminator(conflicts with anyhow feature) - compat: enable
Compatstruct as bridge betweeneyreandanyhowif both are used
§Appearance
By default, Terminator should look like the following (you should see colors)
Error: 0: alright, I'm done, show yourself out with pretty formatting and a fancy backtrace 1: it is pretty nasty, let's send it back to caller 2: an error is never late, nor is it early, it arrives precisely when it means to 3: wild error has appeared ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⋮ 2 frames hidden ⋮ 2: example::module::function at ./src/example.rs:25 3: core::ops::function::FnOnce::call_once at /rustc/hash/library/core/src/ops/function.rs:250 4: <F as example::Eval<A>>::eval at ./src/lib.rs:20 5: example::main at ./src/main.rs:25 6: core::ops::function::FnOnce::call_once at /rustc/hash/library/core/src/ops/function.rs:250 ⋮ 15 frames hidden ⋮
Structs§
- Compat
compatNewtype wrapper for trait object based error types to implementError - Configuration influencing appearance of displayed messages
- Representation of single frame in backtrace
- Error for when
Confighad already been installed - Filename and line corresponding to source file
- Appearance setting for text
- Why not use this in main function as
Errorvalue? It’s so pretty :) - Setting for appearance of
terminatormessages
Enums§
- Color setting for text and background
- Effect setting for text and background
- Setting for backtrace details
Traits§
- ErrorCompat
compatError shim for use withCompat
Type Aliases§
- Callback for filtering a vector of
Frames