error_mancer 0.4.3

Quickly define custom error enums for a function.
Documentation
use anyhow::Result;
use error_mancer::prelude::*;

#[errors]
fn no_errors_foo() -> Result<i32> {
    Ok(10)
}

#[test]
fn no_errors() {
    assert_eq!(no_errors_foo().unwrap(), 10);
}

#[errors]
fn double(x: i32) -> Result<i32> {
    Ok(x * 2)
}

#[test]
fn arguments() {
    assert_eq!(double(10).unwrap(), 20);
}

trait Foo {
    fn foo(&self) -> Result<i32>;
}

struct IShouldntError;

#[errors]
impl Foo for IShouldntError {
    #[errors]
    fn foo(&self) -> Result<i32> {
        Ok(10)
    }
}

#[test]
fn traits() {
    assert_eq!(IShouldntError.foo().unwrap(), 10);
}