nautilus_binance/common/sbe/spot/
symbol_status.rs1#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
2#[repr(u8)]
3pub enum SymbolStatus {
4 Trading = 0x0_u8,
5 EndOfDay = 0x1_u8,
6 Halt = 0x2_u8,
7 Break = 0x3_u8,
8 NonRepresentable = 0xfe_u8,
9 #[default]
10 NullVal = 0xff_u8,
11}
12impl From<u8> for SymbolStatus {
13 #[inline]
14 fn from(v: u8) -> Self {
15 match v {
16 0x0_u8 => Self::Trading,
17 0x1_u8 => Self::EndOfDay,
18 0x2_u8 => Self::Halt,
19 0x3_u8 => Self::Break,
20 0xfe_u8 => Self::NonRepresentable,
21 _ => Self::NullVal,
22 }
23 }
24}
25impl From<SymbolStatus> for u8 {
26 #[inline]
27 fn from(v: SymbolStatus) -> Self {
28 match v {
29 SymbolStatus::Trading => 0x0_u8,
30 SymbolStatus::EndOfDay => 0x1_u8,
31 SymbolStatus::Halt => 0x2_u8,
32 SymbolStatus::Break => 0x3_u8,
33 SymbolStatus::NonRepresentable => 0xfe_u8,
34 SymbolStatus::NullVal => 0xff_u8,
35 }
36 }
37}
38impl core::str::FromStr for SymbolStatus {
39 type Err = ();
40
41 #[inline]
42 fn from_str(v: &str) -> core::result::Result<Self, Self::Err> {
43 match v {
44 "Trading" => Ok(Self::Trading),
45 "EndOfDay" => Ok(Self::EndOfDay),
46 "Halt" => Ok(Self::Halt),
47 "Break" => Ok(Self::Break),
48 "NonRepresentable" => Ok(Self::NonRepresentable),
49 _ => Ok(Self::NullVal),
50 }
51 }
52}
53impl core::fmt::Display for SymbolStatus {
54 #[inline]
55 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
56 match self {
57 Self::Trading => write!(f, "Trading"),
58 Self::EndOfDay => write!(f, "EndOfDay"),
59 Self::Halt => write!(f, "Halt"),
60 Self::Break => write!(f, "Break"),
61 Self::NonRepresentable => write!(f, "NonRepresentable"),
62 Self::NullVal => write!(f, "NullVal"),
63 }
64 }
65}