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}