Macro enum_to_int

Source
macro_rules! enum_to_int {
    ($a:ty, $b:ty, $($x:expr, $y:path), +) => { ... };
}
Expand description

This macro allows turning enums into numbers and vice versa.

#![feature(more_qualified_paths)]

#[derive(Debug, PartialEq)]
enum ABC {
    A,
    B,
    C,
    Unknown(u8),
}
bin_utils::enum_to_int! {
    u8,
    ABC,

    0x01,
    ABC::A,
    0x02,
    ABC::B,
    0x03,
    ABC::C
}

let a: ABC = 0x01.into();
assert_eq!(a, ABC::A);
let a: u8 = a.into();
assert_eq!(a, 0x01);
let unknown: ABC = 0xff.into();
assert_eq!(unknown, ABC::Unknown(0xff));