ibkr_cp_api_client/models/
definitions.rs

1use 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}