Skip to main content

ig_client/presentation/
instrument.rs

1use pretty_simple_display::{DebugPretty, DisplaySimple};
2use serde::{Deserialize, Serialize};
3
4/// Types of financial instruments available in the IG Markets API
5#[repr(u8)]
6#[derive(
7    DebugPretty, Clone, Copy, PartialEq, Eq, Hash, Default, DisplaySimple, Deserialize, Serialize,
8)]
9#[serde(rename_all = "UPPERCASE")]
10pub enum InstrumentType {
11    /// Binary options
12    Binary,
13    /// Bungee capped instruments
14    #[serde(rename = "BUNGEE_CAPPED")]
15    BungeeCapped,
16    /// Bungee commodities instruments
17    #[serde(rename = "BUNGEE_COMMODITIES")]
18    BungeeCommodities,
19    /// Bungee currencies instruments
20    #[serde(rename = "BUNGEE_CURRENCIES")]
21    BungeeCurrencies,
22    /// Bungee indices instruments
23    #[serde(rename = "BUNGEE_INDICES")]
24    BungeeIndices,
25    /// Commodities instruments
26    Commodities,
27    /// Currency pairs
28    Currencies,
29    /// Market indices
30    Indices,
31    /// Knockouts commodities instruments
32    #[serde(rename = "KNOCKOUTS_COMMODITIES")]
33    KnockoutsCommodities,
34    /// Knockouts currencies instruments
35    #[serde(rename = "KNOCKOUTS_CURRENCIES")]
36    KnockoutsCurrencies,
37    /// Knockouts indices instruments
38    #[serde(rename = "KNOCKOUTS_INDICES")]
39    KnockoutsIndices,
40    /// Knockouts shares instruments
41    #[serde(rename = "KNOCKOUTS_SHARES")]
42    KnockoutsShares,
43    /// Options on commodities
44    #[serde(rename = "OPT_COMMODITIES")]
45    OptCommodities,
46    /// Options on currencies
47    #[serde(rename = "OPT_CURRENCIES")]
48    OptCurrencies,
49    /// Options on indices
50    #[serde(rename = "OPT_INDICES")]
51    OptIndices,
52    /// Options on rates
53    #[serde(rename = "OPT_RATES")]
54    OptRates,
55    /// Options on shares
56    #[serde(rename = "OPT_SHARES")]
57    OptShares,
58    /// Interest rates
59    Rates,
60    /// Market sectors
61    Sectors,
62    /// Stocks and shares
63    Shares,
64    /// Sprint market instruments
65    #[serde(rename = "SPRINT_MARKET")]
66    SprintMarket,
67    /// Test market instruments
68    #[serde(rename = "TEST_MARKET")]
69    TestMarket,
70    /// Unknown instrument type
71    Unknown,
72    /// Options
73    #[default]
74    Options,
75}