adhocerr 0.1.2

A library for the construction of efficient single use static/dynamic error types per callsite.
Documentation

Adhoc Errors

Latest Version Rust Documentation

A library for the construction of efficient single use static/dynamic error types per callsite.

[dependencies]
adhocerr = "0.1"

Examples

Creating a root cause error:

use adhocerr::err;

fn get_git_root(start: &Path) -> Result<PathBuf, impl Error + 'static> {
    start
        .ancestors()
        .find(|a| a.join(".git").is_dir())
        .map(Path::to_owned)
        .ok_or(err!("Unable to find .git/ in parent directories"))
}

Wrapping another Error:

use adhocerr::wrap;

fn record_success() -> Result<(), impl Error + 'static> {
    std::fs::write(".success", "true").map_err(wrap!("Failed to save results of script"))
}

License