1#[macro_export] 2macro_rules! define_bit_enum { 3 ($name:ident, [$zero:ident, $one:ident]) => { 4 #[derive( 5 Debug, Clone, Copy, PartialEq, Eq, Default, ::bincode::Encode, ::bincode::Decode, 6 )] 7 pub enum $name { 8 #[default] 9 $zero = 0, 10 $one = 1, 11 } 12 13 impl $name { 14 pub fn from_bit(bit: bool) -> Self { 15 if bit { Self::$one } else { Self::$zero } 16 } 17 } 18 }; 19}