1use strum_macros::{Display, EnumString};
2
3#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, EnumString, Display)]
5#[allow(clippy::upper_case_acronyms)]
6pub enum OrderType {
7 #[strum(disabled)]
9 Unknown,
10 #[strum(serialize = "LO")]
12 LO,
13 #[strum(serialize = "ELO")]
15 ELO,
16 #[strum(serialize = "MO")]
18 MO,
19 #[strum(serialize = "AO")]
21 AO,
22 #[strum(serialize = "ALO")]
24 ALO,
25 #[strum(serialize = "ODD")]
27 ODD,
28 #[strum(serialize = "LIT")]
30 LIT,
31 #[strum(serialize = "MIT")]
33 MIT,
34 #[strum(serialize = "TSLPAMT")]
36 TSLPAMT,
37 #[strum(serialize = "TSLPPCT")]
39 TSLPPCT,
40 #[strum(serialize = "TSMAMT")]
42 TSMAMT,
43 #[strum(serialize = "TSMPCT")]
45 TSMPCT,
46 #[strum(serialize = "SLO")]
48 SLO,
49}
50
51#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, EnumString, Display)]
53pub enum OrderStatus {
54 #[strum(disabled)]
56 Unknown,
57 #[strum(serialize = "NotReported")]
59 NotReported,
60 #[strum(serialize = "ReplacedNotReported")]
62 ReplacedNotReported,
63 #[strum(serialize = "ProtectedNotReported")]
65 ProtectedNotReported,
66 #[strum(serialize = "VarietiesNotReported")]
68 VarietiesNotReported,
69 #[strum(serialize = "FilledStatus")]
71 Filled,
72 #[strum(serialize = "WaitToNew")]
74 WaitToNew,
75 #[strum(serialize = "NewStatus")]
77 New,
78 #[strum(serialize = "WaitToReplace")]
80 WaitToReplace,
81 #[strum(serialize = "PendingReplaceStatus")]
83 PendingReplace,
84 #[strum(serialize = "ReplacedStatus")]
86 Replaced,
87 #[strum(serialize = "PartialFilledStatus")]
89 PartialFilled,
90 #[strum(serialize = "WaitToCancel")]
92 WaitToCancel,
93 #[strum(serialize = "PendingCancelStatus")]
95 PendingCancel,
96 #[strum(serialize = "RejectedStatus")]
98 Rejected,
99 #[strum(serialize = "CanceledStatus")]
101 Canceled,
102 #[strum(serialize = "ExpiredStatus")]
104 Expired,
105 #[strum(serialize = "PartialWithdrawal")]
107 PartialWithdrawal,
108}
109
110#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, EnumString, Display)]
112pub enum OrderSide {
113 #[strum(disabled)]
115 Unknown,
116 #[strum(serialize = "Buy")]
118 Buy,
119 #[strum(serialize = "Sell")]
121 Sell,
122}
123
124#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, EnumString, Display)]
126pub enum OrderTag {
127 #[strum(disabled)]
129 Unknown,
130 #[strum(serialize = "Normal")]
132 Normal,
133 #[strum(serialize = "GTC")]
135 LongTerm,
136 #[strum(serialize = "Grey")]
138 Grey,
139 MarginCall,
141 Offline,
143 Creditor,
145 Debtor,
147 NonExercise,
149 AllocatedSub,
151}
152
153#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, EnumString, Display)]
155pub enum TriggerStatus {
156 #[strum(disabled)]
158 Unknown,
159 #[strum(serialize = "DEACTIVE")]
161 Deactive,
162 #[strum(serialize = "ACTIVE")]
164 Active,
165 #[strum(serialize = "RELEASED")]
167 Released,
168}
169
170impl_serde_for_enum_string!(OrderType, OrderStatus, OrderSide, OrderTag, TriggerStatus);
171
172impl_default_for_enum_string!(OrderType, OrderStatus, OrderSide, OrderTag, TriggerStatus);