alekratz/enum-methods

"Expect" getters

Opened this issue · 0 comments

Would it make sense to have a getter that returns a Result<&T, E>? e.g.

#[derive(EnumExpectGetters)]
enum MyEnum {
    Foo(i32),
    Bar(String),
}

fn main() {
    let foo = MyEnum::Foo(i32);
    let oops = "You can't do that!";
    assert_eq!(foo.expect_bar::<&str>(oops), Err(oops));
}

or something like that? The only major problem I can immediately see is with it conflicting with result types that have one or both type parameters filled out (e.g. error-chain or std::io::Result).