errgo 0.1.4

generate enum variants inline
Documentation
use errgo::errgo;

#[errgo(derive(Clone, Copy, Default))]
fn foo() -> Result<(), FooError> {
    Err(err!(Structy {
        bars: usize = 1,
        chars: char = 'a'
    }))?;
    Err(err!(Tuply(usize = 1, char = 'a')))?;
    Err(errgo!(
        #[default]
        Unit
    ))?;
    Err(FooError::Unit)?;
    Ok(())
}

fn assert_usize(_: usize) {}
fn assert_char(_: char) {}
fn assert_default(_: impl Default) {}

fn assert_foo_error(e: FooError) {
    assert_default(e);
    match e {
        FooError::Structy { bars, chars } => {
            assert_usize(bars);
            assert_char(chars)
        }
        FooError::Tuply(_, _) => (),
        FooError::Unit => (),
    }
}

fn main() {}