use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ExchangeType {
#[serde(rename = "INDEPENDENT_RESERVE")]
IndependentReserve,
#[serde(rename = "ENCLAVE_MARKETS")]
EnclaveMarkets,
#[serde(rename = "BIT")]
Bit,
#[serde(rename = "COINFLEX")]
Coinflex,
#[serde(rename = "KUCOIN")]
Kucoin,
#[serde(rename = "PXS")]
Pxs,
#[serde(rename = "LIQUID")]
Liquid,
#[serde(rename = "BITHUMB")]
Bithumb,
#[serde(rename = "BITFINEX")]
Bitfinex,
#[serde(rename = "BITSO")]
Bitso,
#[serde(rename = "BITSTAMP")]
Bitstamp,
#[serde(rename = "KRAKEN")]
Kraken,
#[serde(rename = "KRAKENINTL")]
Krakenintl,
#[serde(rename = "BINANCE")]
Binance,
#[serde(rename = "BINANCEUS")]
Binanceus,
#[serde(rename = "CRYPTOCOM")]
Cryptocom,
#[serde(rename = "BYBIT_V2")]
BybitV2,
#[serde(rename = "COINBASEPRO")]
Coinbasepro,
#[serde(rename = "COINBASEPRIME")]
Coinbaseprime,
#[serde(rename = "COINBASEINTERNATIONAL")]
Coinbaseinternational,
#[serde(rename = "WHITEBIT")]
Whitebit,
#[serde(rename = "COINBASEEXCHANGE")]
Coinbaseexchange,
#[serde(rename = "KORBIT")]
Korbit,
#[serde(rename = "HITBTC")]
Hitbtc,
#[serde(rename = "GEMINI")]
Gemini,
#[serde(rename = "CIRCLE")]
Circle,
#[serde(rename = "BITMEX")]
Bitmex,
#[serde(rename = "HUOBI")]
Huobi,
#[serde(rename = "DERIBIT")]
Deribit,
#[serde(rename = "OKCOIN_V5")]
OkcoinV5,
#[serde(rename = "OKEX")]
Okex,
#[serde(rename = "COINMETRO")]
Coinmetro,
#[serde(rename = "GATEIO")]
Gateio,
#[serde(rename = "SCRYPT")]
Scrypt,
#[serde(rename = "COINHAKO")]
Coinhako,
#[serde(rename = "LIGHTBIT")]
Lightbit,
#[serde(rename = "BULLISH")]
Bullish,
#[serde(rename = "CANVAS_CONNECT")]
CanvasConnect,
#[serde(rename = "BITGET")]
Bitget,
#[serde(rename = "LUNO")]
Luno,
#[serde(rename = "BIT_GENERA")]
BitGenera,
#[serde(rename = "TRANSFERO")]
Transfero,
}
impl std::fmt::Display for ExchangeType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::IndependentReserve => write!(f, "INDEPENDENT_RESERVE"),
Self::EnclaveMarkets => write!(f, "ENCLAVE_MARKETS"),
Self::Bit => write!(f, "BIT"),
Self::Coinflex => write!(f, "COINFLEX"),
Self::Kucoin => write!(f, "KUCOIN"),
Self::Pxs => write!(f, "PXS"),
Self::Liquid => write!(f, "LIQUID"),
Self::Bithumb => write!(f, "BITHUMB"),
Self::Bitfinex => write!(f, "BITFINEX"),
Self::Bitso => write!(f, "BITSO"),
Self::Bitstamp => write!(f, "BITSTAMP"),
Self::Kraken => write!(f, "KRAKEN"),
Self::Krakenintl => write!(f, "KRAKENINTL"),
Self::Binance => write!(f, "BINANCE"),
Self::Binanceus => write!(f, "BINANCEUS"),
Self::Cryptocom => write!(f, "CRYPTOCOM"),
Self::BybitV2 => write!(f, "BYBIT_V2"),
Self::Coinbasepro => write!(f, "COINBASEPRO"),
Self::Coinbaseprime => write!(f, "COINBASEPRIME"),
Self::Coinbaseinternational => write!(f, "COINBASEINTERNATIONAL"),
Self::Whitebit => write!(f, "WHITEBIT"),
Self::Coinbaseexchange => write!(f, "COINBASEEXCHANGE"),
Self::Korbit => write!(f, "KORBIT"),
Self::Hitbtc => write!(f, "HITBTC"),
Self::Gemini => write!(f, "GEMINI"),
Self::Circle => write!(f, "CIRCLE"),
Self::Bitmex => write!(f, "BITMEX"),
Self::Huobi => write!(f, "HUOBI"),
Self::Deribit => write!(f, "DERIBIT"),
Self::OkcoinV5 => write!(f, "OKCOIN_V5"),
Self::Okex => write!(f, "OKEX"),
Self::Coinmetro => write!(f, "COINMETRO"),
Self::Gateio => write!(f, "GATEIO"),
Self::Scrypt => write!(f, "SCRYPT"),
Self::Coinhako => write!(f, "COINHAKO"),
Self::Lightbit => write!(f, "LIGHTBIT"),
Self::Bullish => write!(f, "BULLISH"),
Self::CanvasConnect => write!(f, "CANVAS_CONNECT"),
Self::Bitget => write!(f, "BITGET"),
Self::Luno => write!(f, "LUNO"),
Self::BitGenera => write!(f, "BIT_GENERA"),
Self::Transfero => write!(f, "TRANSFERO"),
}
}
}
impl Default for ExchangeType {
fn default() -> ExchangeType {
Self::IndependentReserve
}
}