enum_parity 0.2.1

a macro that enforces enum discriminant bit parity
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use enum_parity::bit_parity;

#[bit_parity(even)]
#[repr(u64)]
enum EvenEnum {
    A,
    // skipping 3
    B = 0x05,
    C,
    D,
}

fn main() {
    assert_eq!(EvenEnum::A as u64, 0);
    assert_eq!(EvenEnum::B as u64, 5);
    assert_eq!(EvenEnum::C as u64, 6);
    assert_eq!(EvenEnum::D as u64, 9);
}