7 releases
0.1.8 | Mar 27, 2024 |
---|---|
0.1.7 | Mar 20, 2024 |
0.1.5 | Feb 27, 2024 |
0.1.1 | Jan 29, 2024 |
0.1.0 | Dec 27, 2023 |
#575 in Rust patterns
169 downloads per month
6KB
119 lines
Conerror
Provides a macro that automatically adds context to errors
example
use conerror::conerror;
use std::fs::read;
fn main() {
if let Err(e) = foo() {
println!("{}", e);
}
}
#[conerror]
fn foo() -> conerror::Result<()> {
bar()?;
Ok(())
}
#[conerror]
fn bar() -> conerror::Result<()> {
Baz.baz()?;
Ok(())
}
struct Baz;
#[conerror]
impl Baz {
#[conerror]
fn baz(&self) -> conerror::Result<()> {
read("/root")?;
Ok(())
}
}
Output:
Permission denied (os error 13)
#0 src/main.rs:28 demo::Baz::baz()
#1 src/main.rs:18 demo::bar()
#2 src/main.rs:12 demo::foo()
Dependencies
~0.4–0.8MB
~20K SLoC