adhocerr

Crates.ioadhocerr
lib.rsadhocerr
version0.1.2
sourcesrc
created_at2020-01-08 03:56:17.258588
updated_at2020-01-17 22:12:27.183409
descriptionA library for the construction of efficient single use static/dynamic error types per callsite.
homepagehttps://github.com/yaahc/adhocerr
repositoryhttps://github.com/yaahc/adhocerr
max_upload_size
id196496
size17,101
Jane Losare-Lusby (yaahc)

documentation

https://docs.rs/adhocerr

README

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

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Commit count: 9

cargo fmt