Macro workflow_core::u16_try_from
source ยท macro_rules! u16_try_from { ($(#[$meta:meta])* $vis:vis enum $name:ident { $($(#[$vmeta:meta])* $vname:ident $(= $val:expr)?,)* }) => { ... }; }
Expand description
Associates u16 values to each enum value and declares
a TryFrom<u16>
implementation for this enum allowing
a try_from(u16)
to enum conversion.
Example:
use workflow_core::enums::u16_try_from;
u16_try_from!{
#[derive(Debug, Clone, PartialEq)]
enum MyEnum {
A, // 0u16
B, // 1u16
C, // 2u16
}
}
let v1 = MyEnum::B;
let n: u16 = v1.clone() as u16;
let v2 = MyEnum::try_from(n).unwrap();
assert_eq!(v1, v2);