Macro u8_try_from

Source
macro_rules! u8_try_from {
    ($(#[$meta:meta])* $vis:vis enum $name:ident {
    $($(#[$vmeta:meta])* $vname:ident $(= $val:expr)?,)*
    }) => { ... };
}
Expand description

Associates u8 values to each enum value and declares a TryFrom<u8> implementation for this enum allowing a try_from(u8) to enum conversion.

Example:

use workflow_core::enums::u8_try_from;

u8_try_from!{
    #[derive(Debug, Clone, PartialEq)]
    enum MyEnum {
        A,  // 0u8
        B,  // 1u8
        C,  // 2u8
    }
}

let v1 = MyEnum::B;
let n: u8 = v1.clone() as u8;
let v2 = MyEnum::try_from(n).unwrap();
assert_eq!(v1, v2);