ibkr_cp_api_client/models/
definitions.rs1use std::fmt::{Display, Formatter};
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
6pub enum AssetClass {
7 #[serde(rename = "BOND")]
8 Bond,
9 #[serde(rename = "CFD")]
10 Cfd,
11 #[serde(rename = "FUT")]
12 Future,
13 #[serde(rename = "IND")]
14 Index,
15 #[serde(rename = "OPT")]
16 Option,
17 #[serde(rename = "STK")]
18 Stock,
19 #[serde(rename = "FOP")]
20 FuturesOptions,
21 #[serde(rename = "FUND")]
22 MutualFund,
23 #[serde(rename = "CMDTY")]
24 Commodity,
25 #[serde(rename = "unknown")]
26 #[default]
27 Unknown,
28}
29impl Display for AssetClass {
30 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
31 match self {
32 AssetClass::Bond => write!(f, "BOND"),
33 AssetClass::Cfd => write!(f, "CFD"),
34 AssetClass::Future => write!(f, "FUT"),
35 AssetClass::Index => write!(f, "IND"),
36 AssetClass::Option => write!(f, "OPT"),
37 AssetClass::Stock => write!(f, "STK"),
38 AssetClass::FuturesOptions => write!(f, "FOP"),
39 AssetClass::MutualFund => write!(f, "FUND"),
40 AssetClass::Commodity => write!(f, "CMDTY"),
41 AssetClass::Unknown => write!(f, "Unknown"),
42 }
43 }
44}
45
46#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
47pub enum OptionRight {
48 #[serde(rename = "C")]
49 Call,
50 #[serde(rename = "P")]
51 Put,
52}