nautilus_binance/common/sbe/spot/
bool_enum.rs

1#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
2#[repr(u8)]
3pub enum BoolEnum {
4    False = 0x0_u8,
5    True = 0x1_u8,
6    #[default]
7    NullVal = 0xff_u8,
8}
9impl From<u8> for BoolEnum {
10    #[inline]
11    fn from(v: u8) -> Self {
12        match v {
13            0x0_u8 => Self::False,
14            0x1_u8 => Self::True,
15            _ => Self::NullVal,
16        }
17    }
18}
19impl From<BoolEnum> for u8 {
20    #[inline]
21    fn from(v: BoolEnum) -> Self {
22        match v {
23            BoolEnum::False => 0x0_u8,
24            BoolEnum::True => 0x1_u8,
25            BoolEnum::NullVal => 0xff_u8,
26        }
27    }
28}
29impl core::str::FromStr for BoolEnum {
30    type Err = ();
31
32    #[inline]
33    fn from_str(v: &str) -> core::result::Result<Self, Self::Err> {
34        match v {
35            "False" => Ok(Self::False),
36            "True" => Ok(Self::True),
37            _ => Ok(Self::NullVal),
38        }
39    }
40}
41impl core::fmt::Display for BoolEnum {
42    #[inline]
43    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
44        match self {
45            Self::False => write!(f, "False"),
46            Self::True => write!(f, "True"),
47            Self::NullVal => write!(f, "NullVal"),
48        }
49    }
50}