nautilus_binance/common/sbe/spot/
order_status.rs

1#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
2#[repr(u8)]
3pub enum OrderStatus {
4    New = 0x0_u8,
5    PartiallyFilled = 0x1_u8,
6    Filled = 0x2_u8,
7    Canceled = 0x3_u8,
8    PendingCancel = 0x4_u8,
9    Rejected = 0x5_u8,
10    Expired = 0x6_u8,
11    ExpiredInMatch = 0x9_u8,
12    PendingNew = 0xb_u8,
13    Unknown = 0xfd_u8,
14    NonRepresentable = 0xfe_u8,
15    #[default]
16    NullVal = 0xff_u8,
17}
18impl From<u8> for OrderStatus {
19    #[inline]
20    fn from(v: u8) -> Self {
21        match v {
22            0x0_u8 => Self::New,
23            0x1_u8 => Self::PartiallyFilled,
24            0x2_u8 => Self::Filled,
25            0x3_u8 => Self::Canceled,
26            0x4_u8 => Self::PendingCancel,
27            0x5_u8 => Self::Rejected,
28            0x6_u8 => Self::Expired,
29            0x9_u8 => Self::ExpiredInMatch,
30            0xb_u8 => Self::PendingNew,
31            0xfd_u8 => Self::Unknown,
32            0xfe_u8 => Self::NonRepresentable,
33            _ => Self::NullVal,
34        }
35    }
36}
37impl From<OrderStatus> for u8 {
38    #[inline]
39    fn from(v: OrderStatus) -> Self {
40        match v {
41            OrderStatus::New => 0x0_u8,
42            OrderStatus::PartiallyFilled => 0x1_u8,
43            OrderStatus::Filled => 0x2_u8,
44            OrderStatus::Canceled => 0x3_u8,
45            OrderStatus::PendingCancel => 0x4_u8,
46            OrderStatus::Rejected => 0x5_u8,
47            OrderStatus::Expired => 0x6_u8,
48            OrderStatus::ExpiredInMatch => 0x9_u8,
49            OrderStatus::PendingNew => 0xb_u8,
50            OrderStatus::Unknown => 0xfd_u8,
51            OrderStatus::NonRepresentable => 0xfe_u8,
52            OrderStatus::NullVal => 0xff_u8,
53        }
54    }
55}
56impl core::str::FromStr for OrderStatus {
57    type Err = ();
58
59    #[inline]
60    fn from_str(v: &str) -> core::result::Result<Self, Self::Err> {
61        match v {
62            "New" => Ok(Self::New),
63            "PartiallyFilled" => Ok(Self::PartiallyFilled),
64            "Filled" => Ok(Self::Filled),
65            "Canceled" => Ok(Self::Canceled),
66            "PendingCancel" => Ok(Self::PendingCancel),
67            "Rejected" => Ok(Self::Rejected),
68            "Expired" => Ok(Self::Expired),
69            "ExpiredInMatch" => Ok(Self::ExpiredInMatch),
70            "PendingNew" => Ok(Self::PendingNew),
71            "Unknown" => Ok(Self::Unknown),
72            "NonRepresentable" => Ok(Self::NonRepresentable),
73            _ => Ok(Self::NullVal),
74        }
75    }
76}
77impl core::fmt::Display for OrderStatus {
78    #[inline]
79    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
80        match self {
81            Self::New => write!(f, "New"),
82            Self::PartiallyFilled => write!(f, "PartiallyFilled"),
83            Self::Filled => write!(f, "Filled"),
84            Self::Canceled => write!(f, "Canceled"),
85            Self::PendingCancel => write!(f, "PendingCancel"),
86            Self::Rejected => write!(f, "Rejected"),
87            Self::Expired => write!(f, "Expired"),
88            Self::ExpiredInMatch => write!(f, "ExpiredInMatch"),
89            Self::PendingNew => write!(f, "PendingNew"),
90            Self::Unknown => write!(f, "Unknown"),
91            Self::NonRepresentable => write!(f, "NonRepresentable"),
92            Self::NullVal => write!(f, "NullVal"),
93        }
94    }
95}