Expand description
§Reveal
reveal is a Rust library designed to automatically add context to errors,
making it easier to trace and debug issues by including file names, line numbers,
and function names in error messages.
§Install
cargo add reveal§Features
- Automatically adds context to errors.
- Works with any error type that implements std::error::Error.
- Provides detailed error tracebacks.
§Examples
Here’s a basic example demonstrating how to use the chain_err macro to add context to errors:
use reveal::{chain_err, map_err};
fn main() {
if let Err(e) = run() {
println!("{}", e);
}
}
#[chain_err]
fn run() -> reveal::Result<()> {
App.load_config()?;
Ok(())
}
struct App;
#[chain_err]
impl App {
#[chain_err]
fn load_config(&self) -> reveal::Result<Vec<u8>> {
Ok(read("non_exists_config.toml")?)
}
}
fn read(path: &str) -> reveal::Result<Vec<u8>> {
map_err!(std::fs::read(path), "read", path)
}§Output:
When the above example is run, it produces the following output:
non_exists_config.toml: No such file or directory (os error 2)
#0 src/main.rs:26 demo::read()
#1 src/main.rs:21 demo::App::load_config()
#2 src/main.rs:11 demo::run()Macros§
Structs§
- Error
- Represents an error with additional location information.
- Location
- Represents the location where an error occurred.