is-macro 0.3.7

Derive methods for using custom enums like Option / Result
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use is_macro::Is;

#[derive(Debug, PartialEq, Is)]
pub enum Enum {
    A(u32),
    B(Vec<u32>),
}

#[test]
fn test() {
    let mut e = Enum::A(0);
    *e.as_mut_a().unwrap() += 1;
    assert_eq!(e, Enum::A(1));

    let mut e = Enum::B(vec![]);
    e.as_mut_b().unwrap().push(1);
    assert_eq!(e, Enum::B(vec![1]));
}