Derive Macro IntEnum

Source
#[derive(IntEnum)]
Expand description

Derive macro for conversion between integer and enum.

ยงExample

use int_enum::IntEnum;

#[repr(u8)]
#[derive(Debug, PartialEq, IntEnum)]
pub enum Ascii {
    UpperA = b'A',
    UpperB = b'B',
    UpperC, // Variants without discriminators increment by 1.
}

assert_eq!(u8::from(Ascii::UpperA), b'A');
assert_eq!(u8::from(Ascii::UpperB), b'B');
assert_eq!(u8::from(Ascii::UpperC), b'C');

assert_eq!(Ascii::try_from(b'A'), Ok(Ascii::UpperA));
assert_eq!(Ascii::try_from(b'B'), Ok(Ascii::UpperB));
assert_eq!(Ascii::try_from(b'C'), Ok(Ascii::UpperC));
assert_eq!(Ascii::try_from(b'D'), Err(b'D'));