throws 0.1.2

A macro for easy creation per-function errors.
Documentation
#[macro_use]
extern crate throws;

use std::num::ParseIntError;

throws!(SimpleError = Parse(ParseIntError));
fn foo(source: &str) -> Result<i32, SimpleError> {
    let n: i32 = source.trim().parse()?;
    Ok(n)
}

fn main() {
    let result = foo("test");
    match result {
        Err(ref err) => println!("ERROR: {}", err),
        Ok(n) => println!("OK: {}", n),
    }
    println!("RESULT: {:?}", result);
}