iex 0.2.0

Idiomatic exceptions
Documentation
#![feature(stmt_expr_attributes, proc_macro_hygiene)]

use iex::{iex, Outcome};

#[iex]
fn example() -> Result<u32, &'static str> {
    let checked_divide = {
        #[iex]
        |a: u32, b: u32| -> Result<u32, &'static str> {
            if b == 0 {
                Err("Cannot divide by zero")
            } else {
                Ok(a / b)
            }
        }
    };

    checked_divide(246, 2)
}

#[test]
fn closure() {
    assert_eq!(example().into_result(), Ok(123));
}