Expand description
An error handling library for portable unrecoverable errors.
This crate provides,
Failurestruct that represents an unrecoverable error with an error message and user-level backtraceOrFailtrait- Backtrace location is appended to
Failureeach time when callingOrFail::or_fail() bool,Option<_>andResult<_, _>implementOrFail
- Backtrace location is appended to
§Examples
use orfail::{OrFail, Result};
fn check_non_zero(n: isize) -> Result<()> {
(n != 0).or_fail()?;
Ok(())
}
fn safe_div(x: isize, y: isize) -> Result<isize> {
check_non_zero(y).or_fail()?;
Ok(x / y)
}
// OK
assert_eq!(safe_div(4, 2), Ok(2));
// NG
assert_eq!(safe_div(4, 0).err().map(|e| e.to_string()),
Some(
r#"expected `true` but got `false`
at src/lib.rs:8
at src/lib.rs:13
"#.to_owned()));Structs§
- Failure
Failurerepresents an unrecoverable error with an error message, and backtrace.- Location
- A location in the backtrace of a
Failureinstance.
Traits§
- OrFail
- This trait allows for converting a value into
Result<_, Failure>.