| Crates.io | comfy-color-backtrace |
| lib.rs | comfy-color-backtrace |
| version | 0.6.0 |
| created_at | 2023-09-24 21:58:28.371853+00 |
| updated_at | 2023-09-24 21:58:28.371853+00 |
| description | Comfy fork of Colorful panic backtraces |
| homepage | |
| repository | https://github.com/athre0z/color-backtrace |
| max_upload_size | |
| id | 982199 |
| size | 58,212 |
A Rust library that makes panics a little less painful by nicely colorizing them and printing the relevant source snippets.
[dependencies]
color-backtrace = { version = "0.5" }
To enable it, simply place this code somewhere in your app initialization code:
color_backtrace::install();
If you want to customize some settings, you can instead do:
use color_backtrace::{default_output_stream, BacktracePrinter};
BacktracePrinter::new().message("Custom message!").install(default_output_stream());
In order to reduce transitive dependencies, you can disable the default
enabled gimli-symbolize feature by adding a default-features = false
clause to your Cargo.toml dependency entry, e.g.:
[dependencies]
color-backtrace = { version = "0.5", default-features = false }
This will reduce dependencies from ~50 → ~10. However, you'll pay for it with inaccurate source info on macOS and Linux
Unfortunately, defining custom init functions run before tests are started is currently not supported in Rust. Since initializing color-backtrace in each and every test is tedious even when wrapping it into a function, I recommended using the ctor crate for this.
Somewhere, preferably in your crate's main module, put the following code:
#[cfg(test)]
mod tests {
use ctor::ctor;
#[ctor]
fn init_color_backtrace() {
color_backtrace::install();
}
}
You can also do this outside of a #[cfg(test)] section, in which case the
panic handler is installed for both test and regular runs.
