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}
17
18impl Display for ExchangeAssetClass {
19 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
20 match self {
21 Self::Unspecified => write!(f, "unspecified"),
22 Self::Equity => write!(f, "equity"),
23 Self::Future => write!(f, "future"),
24 }
25 }
26}
27
28#[derive(
30 Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize,
31)]
32#[serde(rename_all = "snake_case")]
33pub enum ExchangeAssetSubclass {
34 #[default]
35 Unspecified,
36 CommonStock,
37 Etf,
38 Energy,
39 Metals,
40 Equity,
41 FixedIncome,
42 Fx,
43 Agricultural,
44}
45
46impl Display for ExchangeAssetSubclass {
47 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
48 match self {
49 Self::Unspecified => write!(f, "unspecified"),
50 Self::CommonStock => write!(f, "common_stock"),
51 Self::Etf => write!(f, "etf"),
52 Self::Energy => write!(f, "energy"),
53 Self::Metals => write!(f, "metals"),
54 Self::Equity => write!(f, "equity"),
55 Self::FixedIncome => write!(f, "fixed_income"),
56 Self::Fx => write!(f, "fx"),
57 Self::Agricultural => write!(f, "agricultural"),
58 }
59 }
60}
61
62#[derive(
64 Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize,
65)]
66#[serde(rename_all = "snake_case")]
67pub enum ExchangeAssetSector {
68 #[default]
69 Unspecified,
70 Technology,
71 Financials,
72 BroadMarket,
73 Oil,
74 Metals,
75 Index,
76 Rates,
77 Fx,
78 Agricultural,
79}
80
81impl Display for ExchangeAssetSector {
82 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
83 match self {
84 Self::Unspecified => write!(f, "unspecified"),
85 Self::Technology => write!(f, "technology"),
86 Self::Financials => write!(f, "financials"),
87 Self::BroadMarket => write!(f, "broad_market"),
88 Self::Oil => write!(f, "oil"),
89 Self::Metals => write!(f, "metals"),
90 Self::Index => write!(f, "index"),
91 Self::Rates => write!(f, "rates"),
92 Self::Fx => write!(f, "fx"),
93 Self::Agricultural => write!(f, "agricultural"),
94 }
95 }
96}