#context #scope #automatic #location #auto

anyhow-auto-context

Automatic context for anyhow errors based on scope and location

1 unstable release

0.1.0 Jan 10, 2025

#12 in #auto

Download history 128/week @ 2025-01-08 10/week @ 2025-01-15

138 downloads per month

MIT license

7KB
50 lines

anyhow-auto-context

License Crates.io Docs.rs

Automatic context for anyhow errors based on scope and location.

Usage

With Option

use anyhow_auto_context::auto_context;

fn main() -> anyhow::Result<()> {
    let expected_some = None;
    auto_context!(expected_some)
}
$ cargo run --example option
Error: expected_some in option::main at examples/option.rs:6:5

With Result

use anyhow::Result;
use anyhow_auto_context::auto_context;

fn main() -> Result<()> {
    auto_context!(foo())
}

fn foo() -> Result<()> {
    auto_context!(bar())
}

fn bar() -> Result<()> {
    anyhow::bail!("my error")
}
$ cargo run --example result
Error: foo() in result::main at examples/result.rs:6:5

Caused by:
    0: bar() in result::foo at examples/result.rs:10:5
    1: my error

Contributing

  • please run .pre-commit.sh before sending a PR, it will check everything

License

This project is licensed under the MIT license.

No runtime deps