macro_rules! bitflag {
(
$(#[$outer:meta])*
$vis:vis enum $name:ident {
$($(#[$inner:meta])* $variant:ident = $value:expr),*
$(,)?
}
) => { ... };
}Expand description
Defines a #[repr(u8)] enum and auto-implements BitFlag,
From<Enum> for u8, and TryFrom<u8>.
bitflagset::bitflag! {
#[derive(Debug)]
#[repr(u8)]
pub enum Color {
Red = 0,
Green = 1,
Blue = 2,
}
}
use bitflagset::BitFlag;
assert_eq!(Color::Red.mask(), 1u8);
assert_eq!(Color::Green.as_u8(), 1);
assert_eq!(Color::try_from(2), Ok(Color::Blue));
assert!(Color::try_from(99).is_err());