orfail

orfail Documentation Actions Status License

An error handling library for portable unrecoverable errors.

This crate provides,

Examples

```rust use orfail::{OrFail, Result};

fn checknonzero(n: isize) -> Result<()> { (n != 0).or_fail()?; Ok(()) }

fn safediv(x: isize, y: isize) -> Result { checknonzero(y).orfail()?; Ok(x / y) }

// OK asserteq!(safediv(4, 2), Ok(2));

// NG asserteq!(safediv(4, 0).err().map(|e| e.tostring()), Some( r#"failed due to "expected true but got false" at src/lib.rs:7 at src/lib.rs:12 "#.toowned())); ```