use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum InstrumentName {
#[serde(rename = "AUD_CAD")]
AudCad,
#[serde(rename = "AUD_CHF")]
AudChf,
#[serde(rename = "AUD_HKD")]
AudHkd,
#[serde(rename = "AUD_JPY")]
AudJpy,
#[serde(rename = "AUD_NZD")]
AudNzd,
#[serde(rename = "AUD_SGD")]
AudSgd,
#[serde(rename = "AUD_USD")]
AudUsd,
#[serde(rename = "CAD_CHF")]
CadChf,
#[serde(rename = "CAD_HKD")]
CadHkd,
#[serde(rename = "CAD_JPY")]
CadJpy,
#[serde(rename = "CAD_SGD")]
CadSgd,
#[serde(rename = "CHF_HKD")]
ChfHkd,
#[serde(rename = "CHF_JPY")]
ChfJpy,
#[serde(rename = "CHF_ZAR")]
ChfZar,
#[serde(rename = "EUR_AUD")]
EurAud,
#[serde(rename = "EUR_CAD")]
EurCad,
#[serde(rename = "EUR_CHF")]
EurChf,
#[serde(rename = "EUR_CZK")]
EurCzk,
#[serde(rename = "EUR_DKK")]
EurDkk,
#[serde(rename = "EUR_GBP")]
EurGbp,
#[serde(rename = "EUR_HKD")]
EurHkd,
#[serde(rename = "EUR_HUF")]
EurHuf,
#[serde(rename = "EUR_JPY")]
EurJpy,
#[serde(rename = "EUR_NOK")]
EurNok,
#[serde(rename = "EUR_NZD")]
EurNzd,
#[serde(rename = "EUR_PLN")]
EurPln,
#[serde(rename = "EUR_SEK")]
EurSek,
#[serde(rename = "EUR_SGD")]
EurSgd,
#[serde(rename = "EUR_TRY")]
EurTry,
#[serde(rename = "EUR_USD")]
EurUsd,
#[serde(rename = "EUR_ZAR")]
EurZar,
#[serde(rename = "GBP_AUD")]
GbpAud,
#[serde(rename = "GBP_CAD")]
GbpCad,
#[serde(rename = "GBP_CHF")]
GbpChf,
#[serde(rename = "GBP_HKD")]
GbpHkd,
#[serde(rename = "GBP_JPY")]
GbpJpy,
#[serde(rename = "GBP_NZD")]
GbpNzd,
#[serde(rename = "GBP_PLN")]
GbpPln,
#[serde(rename = "GBP_SGD")]
GbpSgd,
#[serde(rename = "GBP_USD")]
GbpUsd,
#[serde(rename = "GBP_ZAR")]
GbpZar,
#[serde(rename = "HKD_JPY")]
HkdJpy,
#[serde(rename = "NZD_CAD")]
NzdCad,
#[serde(rename = "NZD_CHF")]
NzdChf,
#[serde(rename = "NZD_HKD")]
NzdHkd,
#[serde(rename = "NZD_JPY")]
NzdJpy,
#[serde(rename = "NZD_SGD")]
NzdSgd,
#[serde(rename = "NZD_USD")]
NzdUsd,
#[serde(rename = "SGD_CHF")]
SgdChf,
#[serde(rename = "SGD_HKD")]
SgdHkd,
#[serde(rename = "SGD_JPY")]
SgdJpy,
#[serde(rename = "TRY_JPY")]
TryJpy,
#[serde(rename = "USD_CAD")]
UsdCad,
#[serde(rename = "USD_CHF")]
UsdChf,
#[serde(rename = "USD_CNH")]
UsdCnh,
#[serde(rename = "USD_CZK")]
UsdCzk,
#[serde(rename = "USD_DKK")]
UsdDkk,
#[serde(rename = "USD_HKD")]
UsdHkd,
#[serde(rename = "USD_HUF")]
UsdHuf,
#[serde(rename = "USD_JPY")]
UsdJpy,
#[serde(rename = "USD_MXN")]
UsdMxn,
#[serde(rename = "USD_NOK")]
UsdNok,
#[serde(rename = "USD_PLN")]
UsdPln,
#[serde(rename = "USD_SAR")]
UsdSar,
#[serde(rename = "USD_SEK")]
UsdSek,
#[serde(rename = "USD_SGD")]
UsdSgd,
#[serde(rename = "USD_THB")]
UsdThb,
#[serde(rename = "USD_TRY")]
UsdTry,
#[serde(rename = "USD_ZAR")]
UsdZar,
#[serde(rename = "ZAR_JPY")]
ZarJpy,
}
impl std::fmt::Display for InstrumentName {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::AudCad => write!(f, "AUD_CAD"),
Self::AudChf => write!(f, "AUD_CHF"),
Self::AudHkd => write!(f, "AUD_HKD"),
Self::AudJpy => write!(f, "AUD_JPY"),
Self::AudNzd => write!(f, "AUD_NZD"),
Self::AudSgd => write!(f, "AUD_SGD"),
Self::AudUsd => write!(f, "AUD_USD"),
Self::CadChf => write!(f, "CAD_CHF"),
Self::CadHkd => write!(f, "CAD_HKD"),
Self::CadJpy => write!(f, "CAD_JPY"),
Self::CadSgd => write!(f, "CAD_SGD"),
Self::ChfHkd => write!(f, "CHF_HKD"),
Self::ChfJpy => write!(f, "CHF_JPY"),
Self::ChfZar => write!(f, "CHF_ZAR"),
Self::EurAud => write!(f, "EUR_AUD"),
Self::EurCad => write!(f, "EUR_CAD"),
Self::EurChf => write!(f, "EUR_CHF"),
Self::EurCzk => write!(f, "EUR_CZK"),
Self::EurDkk => write!(f, "EUR_DKK"),
Self::EurGbp => write!(f, "EUR_GBP"),
Self::EurHkd => write!(f, "EUR_HKD"),
Self::EurHuf => write!(f, "EUR_HUF"),
Self::EurJpy => write!(f, "EUR_JPY"),
Self::EurNok => write!(f, "EUR_NOK"),
Self::EurNzd => write!(f, "EUR_NZD"),
Self::EurPln => write!(f, "EUR_PLN"),
Self::EurSek => write!(f, "EUR_SEK"),
Self::EurSgd => write!(f, "EUR_SGD"),
Self::EurTry => write!(f, "EUR_TRY"),
Self::EurUsd => write!(f, "EUR_USD"),
Self::EurZar => write!(f, "EUR_ZAR"),
Self::GbpAud => write!(f, "GBP_AUD"),
Self::GbpCad => write!(f, "GBP_CAD"),
Self::GbpChf => write!(f, "GBP_CHF"),
Self::GbpHkd => write!(f, "GBP_HKD"),
Self::GbpJpy => write!(f, "GBP_JPY"),
Self::GbpNzd => write!(f, "GBP_NZD"),
Self::GbpPln => write!(f, "GBP_PLN"),
Self::GbpSgd => write!(f, "GBP_SGD"),
Self::GbpUsd => write!(f, "GBP_USD"),
Self::GbpZar => write!(f, "GBP_ZAR"),
Self::HkdJpy => write!(f, "HKD_JPY"),
Self::NzdCad => write!(f, "NZD_CAD"),
Self::NzdChf => write!(f, "NZD_CHF"),
Self::NzdHkd => write!(f, "NZD_HKD"),
Self::NzdJpy => write!(f, "NZD_JPY"),
Self::NzdSgd => write!(f, "NZD_SGD"),
Self::NzdUsd => write!(f, "NZD_USD"),
Self::SgdChf => write!(f, "SGD_CHF"),
Self::SgdHkd => write!(f, "SGD_HKD"),
Self::SgdJpy => write!(f, "SGD_JPY"),
Self::TryJpy => write!(f, "TRY_JPY"),
Self::UsdCad => write!(f, "USD_CAD"),
Self::UsdChf => write!(f, "USD_CHF"),
Self::UsdCnh => write!(f, "USD_CNH"),
Self::UsdCzk => write!(f, "USD_CZK"),
Self::UsdDkk => write!(f, "USD_DKK"),
Self::UsdHkd => write!(f, "USD_HKD"),
Self::UsdHuf => write!(f, "USD_HUF"),
Self::UsdJpy => write!(f, "USD_JPY"),
Self::UsdMxn => write!(f, "USD_MXN"),
Self::UsdNok => write!(f, "USD_NOK"),
Self::UsdPln => write!(f, "USD_PLN"),
Self::UsdSar => write!(f, "USD_SAR"),
Self::UsdSek => write!(f, "USD_SEK"),
Self::UsdSgd => write!(f, "USD_SGD"),
Self::UsdThb => write!(f, "USD_THB"),
Self::UsdTry => write!(f, "USD_TRY"),
Self::UsdZar => write!(f, "USD_ZAR"),
Self::ZarJpy => write!(f, "ZAR_JPY"),
}
}
}
impl Default for InstrumentName {
fn default() -> InstrumentName {
Self::AudCad
}
}