use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Currency {
#[serde(rename = "AED")]
Aed,
#[serde(rename = "ALL")]
All,
#[serde(rename = "AMD")]
Amd,
#[serde(rename = "ANG")]
Ang,
#[serde(rename = "AOA")]
Aoa,
#[serde(rename = "ARS")]
Ars,
#[serde(rename = "AUD")]
Aud,
#[serde(rename = "AWG")]
Awg,
#[serde(rename = "AZN")]
Azn,
#[serde(rename = "BAM")]
Bam,
#[serde(rename = "BBD")]
Bbd,
#[serde(rename = "BDT")]
Bdt,
#[serde(rename = "BGN")]
Bgn,
#[serde(rename = "BHD")]
Bhd,
#[serde(rename = "BIF")]
Bif,
#[serde(rename = "BMD")]
Bmd,
#[serde(rename = "BND")]
Bnd,
#[serde(rename = "BOB")]
Bob,
#[serde(rename = "BRL")]
Brl,
#[serde(rename = "BSD")]
Bsd,
#[serde(rename = "BWP")]
Bwp,
#[serde(rename = "BYN")]
Byn,
#[serde(rename = "BZD")]
Bzd,
#[serde(rename = "CAD")]
Cad,
#[serde(rename = "CHF")]
Chf,
#[serde(rename = "CLP")]
Clp,
#[serde(rename = "CNY")]
Cny,
#[serde(rename = "COP")]
Cop,
#[serde(rename = "CRC")]
Crc,
#[serde(rename = "CUP")]
Cup,
#[serde(rename = "CVE")]
Cve,
#[serde(rename = "CZK")]
Czk,
#[serde(rename = "DJF")]
Djf,
#[serde(rename = "DKK")]
Dkk,
#[serde(rename = "DOP")]
Dop,
#[serde(rename = "DZD")]
Dzd,
#[serde(rename = "EGP")]
Egp,
#[serde(rename = "ETB")]
Etb,
#[serde(rename = "EUR")]
Eur,
#[serde(rename = "FJD")]
Fjd,
#[serde(rename = "FKP")]
Fkp,
#[serde(rename = "GBP")]
Gbp,
#[serde(rename = "GEL")]
Gel,
#[serde(rename = "GHS")]
Ghs,
#[serde(rename = "GIP")]
Gip,
#[serde(rename = "GMD")]
Gmd,
#[serde(rename = "GNF")]
Gnf,
#[serde(rename = "GTQ")]
Gtq,
#[serde(rename = "GYD")]
Gyd,
#[serde(rename = "HKD")]
Hkd,
#[serde(rename = "HNL")]
Hnl,
#[serde(rename = "HRK")]
Hrk,
#[serde(rename = "HTG")]
Htg,
#[serde(rename = "HUF")]
Huf,
#[serde(rename = "IDR")]
Idr,
#[serde(rename = "ILS")]
Ils,
#[serde(rename = "INR")]
Inr,
#[serde(rename = "IQD")]
Iqd,
#[serde(rename = "JMD")]
Jmd,
#[serde(rename = "JOD")]
Jod,
#[serde(rename = "JPY")]
Jpy,
#[serde(rename = "KES")]
Kes,
#[serde(rename = "KGS")]
Kgs,
#[serde(rename = "KHR")]
Khr,
#[serde(rename = "KMF")]
Kmf,
#[serde(rename = "KRW")]
Krw,
#[serde(rename = "KWD")]
Kwd,
#[serde(rename = "KYD")]
Kyd,
#[serde(rename = "KZT")]
Kzt,
#[serde(rename = "LAK")]
Lak,
#[serde(rename = "LBP")]
Lbp,
#[serde(rename = "LKR")]
Lkr,
#[serde(rename = "LRD")]
Lrd,
#[serde(rename = "LSL")]
Lsl,
#[serde(rename = "LYD")]
Lyd,
#[serde(rename = "MAD")]
Mad,
#[serde(rename = "MDL")]
Mdl,
#[serde(rename = "MGA")]
Mga,
#[serde(rename = "MKD")]
Mkd,
#[serde(rename = "MMK")]
Mmk,
#[serde(rename = "MNT")]
Mnt,
#[serde(rename = "MOP")]
Mop,
#[serde(rename = "MRU")]
Mru,
#[serde(rename = "MUR")]
Mur,
#[serde(rename = "MVR")]
Mvr,
#[serde(rename = "MWK")]
Mwk,
#[serde(rename = "MXN")]
Mxn,
#[serde(rename = "MYR")]
Myr,
#[serde(rename = "MZN")]
Mzn,
#[serde(rename = "NAD")]
Nad,
#[serde(rename = "NGN")]
Ngn,
#[serde(rename = "NIO")]
Nio,
#[serde(rename = "NOK")]
Nok,
#[serde(rename = "NPR")]
Npr,
#[serde(rename = "NZD")]
Nzd,
#[serde(rename = "OMR")]
Omr,
#[serde(rename = "PAB")]
Pab,
#[serde(rename = "PEN")]
Pen,
#[serde(rename = "PGK")]
Pgk,
#[serde(rename = "PHP")]
Php,
#[serde(rename = "PKR")]
Pkr,
#[serde(rename = "PLN")]
Pln,
#[serde(rename = "PYG")]
Pyg,
#[serde(rename = "QAR")]
Qar,
#[serde(rename = "RON")]
Ron,
#[serde(rename = "RSD")]
Rsd,
#[serde(rename = "RUB")]
Rub,
#[serde(rename = "RWF")]
Rwf,
#[serde(rename = "SAR")]
Sar,
#[serde(rename = "SBD")]
Sbd,
#[serde(rename = "SCR")]
Scr,
#[serde(rename = "SEK")]
Sek,
#[serde(rename = "SGD")]
Sgd,
#[serde(rename = "SHP")]
Shp,
#[serde(rename = "SLE")]
Sle,
#[serde(rename = "SLL")]
Sll,
#[serde(rename = "SOS")]
Sos,
#[serde(rename = "SRD")]
Srd,
#[serde(rename = "SSP")]
Ssp,
#[serde(rename = "STN")]
Stn,
#[serde(rename = "SVC")]
Svc,
#[serde(rename = "SZL")]
Szl,
#[serde(rename = "THB")]
Thb,
#[serde(rename = "TND")]
Tnd,
#[serde(rename = "TOP")]
Top,
#[serde(rename = "TRY")]
Try,
#[serde(rename = "TTD")]
Ttd,
#[serde(rename = "TWD")]
Twd,
#[serde(rename = "TZS")]
Tzs,
#[serde(rename = "UAH")]
Uah,
#[serde(rename = "UGX")]
Ugx,
#[serde(rename = "USD")]
Usd,
#[serde(rename = "UYU")]
Uyu,
#[serde(rename = "UZS")]
Uzs,
#[serde(rename = "VES")]
Ves,
#[serde(rename = "VND")]
Vnd,
#[serde(rename = "VUV")]
Vuv,
#[serde(rename = "WST")]
Wst,
#[serde(rename = "XAF")]
Xaf,
#[serde(rename = "XCD")]
Xcd,
#[serde(rename = "XOF")]
Xof,
#[serde(rename = "XPF")]
Xpf,
#[serde(rename = "YER")]
Yer,
#[serde(rename = "ZAR")]
Zar,
#[serde(rename = "ZMW")]
Zmw,
}
impl std::fmt::Display for Currency {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Aed => write!(f, "AED"),
Self::All => write!(f, "ALL"),
Self::Amd => write!(f, "AMD"),
Self::Ang => write!(f, "ANG"),
Self::Aoa => write!(f, "AOA"),
Self::Ars => write!(f, "ARS"),
Self::Aud => write!(f, "AUD"),
Self::Awg => write!(f, "AWG"),
Self::Azn => write!(f, "AZN"),
Self::Bam => write!(f, "BAM"),
Self::Bbd => write!(f, "BBD"),
Self::Bdt => write!(f, "BDT"),
Self::Bgn => write!(f, "BGN"),
Self::Bhd => write!(f, "BHD"),
Self::Bif => write!(f, "BIF"),
Self::Bmd => write!(f, "BMD"),
Self::Bnd => write!(f, "BND"),
Self::Bob => write!(f, "BOB"),
Self::Brl => write!(f, "BRL"),
Self::Bsd => write!(f, "BSD"),
Self::Bwp => write!(f, "BWP"),
Self::Byn => write!(f, "BYN"),
Self::Bzd => write!(f, "BZD"),
Self::Cad => write!(f, "CAD"),
Self::Chf => write!(f, "CHF"),
Self::Clp => write!(f, "CLP"),
Self::Cny => write!(f, "CNY"),
Self::Cop => write!(f, "COP"),
Self::Crc => write!(f, "CRC"),
Self::Cup => write!(f, "CUP"),
Self::Cve => write!(f, "CVE"),
Self::Czk => write!(f, "CZK"),
Self::Djf => write!(f, "DJF"),
Self::Dkk => write!(f, "DKK"),
Self::Dop => write!(f, "DOP"),
Self::Dzd => write!(f, "DZD"),
Self::Egp => write!(f, "EGP"),
Self::Etb => write!(f, "ETB"),
Self::Eur => write!(f, "EUR"),
Self::Fjd => write!(f, "FJD"),
Self::Fkp => write!(f, "FKP"),
Self::Gbp => write!(f, "GBP"),
Self::Gel => write!(f, "GEL"),
Self::Ghs => write!(f, "GHS"),
Self::Gip => write!(f, "GIP"),
Self::Gmd => write!(f, "GMD"),
Self::Gnf => write!(f, "GNF"),
Self::Gtq => write!(f, "GTQ"),
Self::Gyd => write!(f, "GYD"),
Self::Hkd => write!(f, "HKD"),
Self::Hnl => write!(f, "HNL"),
Self::Hrk => write!(f, "HRK"),
Self::Htg => write!(f, "HTG"),
Self::Huf => write!(f, "HUF"),
Self::Idr => write!(f, "IDR"),
Self::Ils => write!(f, "ILS"),
Self::Inr => write!(f, "INR"),
Self::Iqd => write!(f, "IQD"),
Self::Jmd => write!(f, "JMD"),
Self::Jod => write!(f, "JOD"),
Self::Jpy => write!(f, "JPY"),
Self::Kes => write!(f, "KES"),
Self::Kgs => write!(f, "KGS"),
Self::Khr => write!(f, "KHR"),
Self::Kmf => write!(f, "KMF"),
Self::Krw => write!(f, "KRW"),
Self::Kwd => write!(f, "KWD"),
Self::Kyd => write!(f, "KYD"),
Self::Kzt => write!(f, "KZT"),
Self::Lak => write!(f, "LAK"),
Self::Lbp => write!(f, "LBP"),
Self::Lkr => write!(f, "LKR"),
Self::Lrd => write!(f, "LRD"),
Self::Lsl => write!(f, "LSL"),
Self::Lyd => write!(f, "LYD"),
Self::Mad => write!(f, "MAD"),
Self::Mdl => write!(f, "MDL"),
Self::Mga => write!(f, "MGA"),
Self::Mkd => write!(f, "MKD"),
Self::Mmk => write!(f, "MMK"),
Self::Mnt => write!(f, "MNT"),
Self::Mop => write!(f, "MOP"),
Self::Mru => write!(f, "MRU"),
Self::Mur => write!(f, "MUR"),
Self::Mvr => write!(f, "MVR"),
Self::Mwk => write!(f, "MWK"),
Self::Mxn => write!(f, "MXN"),
Self::Myr => write!(f, "MYR"),
Self::Mzn => write!(f, "MZN"),
Self::Nad => write!(f, "NAD"),
Self::Ngn => write!(f, "NGN"),
Self::Nio => write!(f, "NIO"),
Self::Nok => write!(f, "NOK"),
Self::Npr => write!(f, "NPR"),
Self::Nzd => write!(f, "NZD"),
Self::Omr => write!(f, "OMR"),
Self::Pab => write!(f, "PAB"),
Self::Pen => write!(f, "PEN"),
Self::Pgk => write!(f, "PGK"),
Self::Php => write!(f, "PHP"),
Self::Pkr => write!(f, "PKR"),
Self::Pln => write!(f, "PLN"),
Self::Pyg => write!(f, "PYG"),
Self::Qar => write!(f, "QAR"),
Self::Ron => write!(f, "RON"),
Self::Rsd => write!(f, "RSD"),
Self::Rub => write!(f, "RUB"),
Self::Rwf => write!(f, "RWF"),
Self::Sar => write!(f, "SAR"),
Self::Sbd => write!(f, "SBD"),
Self::Scr => write!(f, "SCR"),
Self::Sek => write!(f, "SEK"),
Self::Sgd => write!(f, "SGD"),
Self::Shp => write!(f, "SHP"),
Self::Sle => write!(f, "SLE"),
Self::Sll => write!(f, "SLL"),
Self::Sos => write!(f, "SOS"),
Self::Srd => write!(f, "SRD"),
Self::Ssp => write!(f, "SSP"),
Self::Stn => write!(f, "STN"),
Self::Svc => write!(f, "SVC"),
Self::Szl => write!(f, "SZL"),
Self::Thb => write!(f, "THB"),
Self::Tnd => write!(f, "TND"),
Self::Top => write!(f, "TOP"),
Self::Try => write!(f, "TRY"),
Self::Ttd => write!(f, "TTD"),
Self::Twd => write!(f, "TWD"),
Self::Tzs => write!(f, "TZS"),
Self::Uah => write!(f, "UAH"),
Self::Ugx => write!(f, "UGX"),
Self::Usd => write!(f, "USD"),
Self::Uyu => write!(f, "UYU"),
Self::Uzs => write!(f, "UZS"),
Self::Ves => write!(f, "VES"),
Self::Vnd => write!(f, "VND"),
Self::Vuv => write!(f, "VUV"),
Self::Wst => write!(f, "WST"),
Self::Xaf => write!(f, "XAF"),
Self::Xcd => write!(f, "XCD"),
Self::Xof => write!(f, "XOF"),
Self::Xpf => write!(f, "XPF"),
Self::Yer => write!(f, "YER"),
Self::Zar => write!(f, "ZAR"),
Self::Zmw => write!(f, "ZMW"),
}
}
}
impl Default for Currency {
fn default() -> Currency {
Self::Aed
}
}