1use {
2 serde::{Deserialize, Serialize},
3 std::fmt::Display,
4};
5
6#[derive(
8 Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize,
9)]
10#[serde(rename_all = "snake_case")]
11pub enum ExchangeAssetClass {
12 #[default]
13 Unspecified,
14 Equity,
15 Future,
16 Commodity,
17}
18
19impl Display for ExchangeAssetClass {
20 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
21 match self {
22 Self::Unspecified => write!(f, "unspecified"),
23 Self::Equity => write!(f, "equity"),
24 Self::Future => write!(f, "future"),
25 Self::Commodity => write!(f, "commodity"),
26 }
27 }
28}
29
30#[derive(
32 Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize,
33)]
34#[serde(rename_all = "snake_case")]
35pub enum ExchangeAssetSubclass {
36 #[default]
37 Unspecified,
38 CommonStock,
39 Etf,
40 Energy,
41 Metals,
42 Equity,
43 FixedIncome,
44 Fx,
45 Agricultural,
46 Cocoa,
47 Coffee,
48 RawSugar,
49 PreciousMetals,
50 BaseMetals,
51 Volatility,
52}
53
54impl Display for ExchangeAssetSubclass {
55 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
56 match self {
57 Self::Unspecified => write!(f, "unspecified"),
58 Self::CommonStock => write!(f, "common_stock"),
59 Self::Etf => write!(f, "etf"),
60 Self::Energy => write!(f, "energy"),
61 Self::Metals => write!(f, "metals"),
62 Self::Equity => write!(f, "equity"),
63 Self::FixedIncome => write!(f, "fixed_income"),
64 Self::Fx => write!(f, "fx"),
65 Self::Agricultural => write!(f, "agricultural"),
66 Self::Cocoa => write!(f, "cocoa"),
67 Self::Coffee => write!(f, "coffee"),
68 Self::RawSugar => write!(f, "raw_sugar"),
69 Self::PreciousMetals => write!(f, "precious_metals"),
70 Self::BaseMetals => write!(f, "base_metals"),
71 Self::Volatility => write!(f, "volatility"),
72 }
73 }
74}
75
76#[derive(
78 Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize,
79)]
80#[serde(rename_all = "snake_case")]
81pub enum ExchangeAssetSector {
82 #[default]
83 Unspecified,
84 Technology,
85 Financials,
86 BroadMarket,
87 Oil,
88 Metals,
89 Index,
90 Rates,
91 Fx,
92 Agricultural,
94 Energy,
95 Materials,
96 Agriculture,
97}
98
99impl Display for ExchangeAssetSector {
100 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
101 match self {
102 Self::Unspecified => write!(f, "unspecified"),
103 Self::Technology => write!(f, "technology"),
104 Self::Financials => write!(f, "financials"),
105 Self::BroadMarket => write!(f, "broad_market"),
106 Self::Oil => write!(f, "oil"),
107 Self::Metals => write!(f, "metals"),
108 Self::Index => write!(f, "index"),
109 Self::Rates => write!(f, "rates"),
110 Self::Fx => write!(f, "fx"),
111 Self::Agricultural => write!(f, "agricultural"),
112 Self::Energy => write!(f, "energy"),
113 Self::Materials => write!(f, "materials"),
114 Self::Agriculture => write!(f, "agriculture"),
115 }
116 }
117}