1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
use std::fmt;

/// Currency is the list of supported currencies.
///
/// For more details see https://support.stripe.com/questions/which-currencies-does-stripe-support.
#[derive(Debug, Deserialize, Serialize, Hash, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum Currency {
    AED, // United Arab Emirates Dirham
    AFN, // Afghan Afghani
    ALL, // Albanian Lek
    AMD, // Armenian Dram
    ANG, // Netherlands Antillean Gulden
    AOA, // Angolan Kwanza
    ARS, // Argentine Peso
    AUD, // Australian Dollar
    AWG, // Aruban Florin
    AZN, // Azerbaijani Manat
    BAM, // Bosnia & Herzegovina Convertible Mark
    BBD, // Barbadian Dollar
    BDT, // Bangladeshi Taka
    BGN, // Bulgarian Lev
    BIF, // Burundian Franc
    BMD, // Bermudian Dollar
    BND, // Brunei Dollar
    BOB, // Bolivian Boliviano
    BRL, // Brazilian Real
    BSD, // Bahamian Dollar
    BWP, // Botswana Pula
    BZD, // Belize Dollar
    CAD, // Canadian Dollar
    CDF, // Congolese Franc
    CHF, // Swiss Franc
    CLP, // Chilean Peso
    CNY, // Chinese Renminbi Yuan
    COP, // Colombian Peso
    CRC, // Costa Rican Colón
    CVE, // Cape Verdean Escudo
    CZK, // Czech Koruna
    DJF, // Djiboutian Franc
    DKK, // Danish Krone
    DOP, // Dominican Peso
    DZD, // Algerian Dinar
    EEK, // Estonian Kroon
    EGP, // Egyptian Pound
    ETB, // Ethiopian Birr
    EUR, // Euro
    FJD, // Fijian Dollar
    FKP, // Falkland Islands Pound
    GBP, // British Pound
    GEL, // Georgian Lari
    GIP, // Gibraltar Pound
    GMD, // Gambian Dalasi
    GNF, // Guinean Franc
    GTQ, // Guatemalan Quetzal
    GYD, // Guyanese Dollar
    HKD, // Hong Kong Dollar
    HNL, // Honduran Lempira
    HRK, // Croatian Kuna
    HTG, // Haitian Gourde
    HUF, // Hungarian Forint
    IDR, // Indonesian Rupiah
    ILS, // Israeli New Sheqel
    INR, // Indian Rupee
    ISK, // Icelandic Króna
    JMD, // Jamaican Dollar
    JPY, // Japanese Yen
    KES, // Kenyan Shilling
    KGS, // Kyrgyzstani Som
    KHR, // Cambodian Riel
    KMF, // Comorian Franc
    KRW, // South Korean Won
    KYD, // Cayman Islands Dollar
    KZT, // Kazakhstani Tenge
    LAK, // Lao Kip
    LBP, // Lebanese Pound
    LKR, // Sri Lankan Rupee
    LRD, // Liberian Dollar
    LSL, // Lesotho Loti
    LTL, // Lithuanian Litas
    LVL, // Latvian Lats
    MAD, // Moroccan Dirham
    MDL, // Moldovan Leu
    MGA, // Malagasy Ariary
    MKD, // Macedonian Denar
    MNT, // Mongolian Tögrög
    MOP, // Macanese Pataca
    MRO, // Mauritanian Ouguiya
    MUR, // Mauritian Rupee
    MMK, // Myanmar Kyat
    MVR, // Maldivian Rufiyaa
    MWK, // Malawian Kwacha
    MXN, // Mexican Peso
    MYR, // Malaysian Ringgit
    MZN, // Mozambican Metical
    NAD, // Namibian Dollar
    NGN, // Nigerian Naira
    NIO, // Nicaraguan Córdoba
    NOK, // Norwegian Krone
    NPR, // Nepalese Rupee
    NZD, // New Zealand Dollar
    PAB, // Panamanian Balboa
    PEN, // Peruvian Nuevo Sol
    PGK, // Papua New Guinean Kina
    PHP, // Philippine Peso
    PKR, // Pakistani Rupee
    PLN, // Polish Złoty
    PYG, // Paraguayan Guaraní
    QAR, // Qatari Riyal
    RON, // Romanian Leu
    RSD, // Serbian Dinar
    RUB, // Russian Ruble
    RWF, // Rwandan Franc
    SAR, // Saudi Riyal
    SBD, // Solomon Islands Dollar
    SCR, // Seychellois Rupee
    SEK, // Swedish Krona
    SGD, // Singapore Dollar
    SHP, // Saint Helenian Pound
    SLL, // Sierra Leonean Leone
    SOS, // Somali Shilling
    SRD, // Surinamese Dollar
    STD, // São Tomé and Príncipe Dobra
    SVC, // Salvadoran Colón
    SZL, // Swazi Lilangeni
    THB, // Thai Baht
    TJS, // Tajikistani Somoni
    TOP, // Tongan Paʻanga
    TRY, // Turkish Lira
    TTD, // Trinidad and Tobago Dollar
    TWD, // New Taiwan Dollar
    TZS, // Tanzanian Shilling
    UAH, // Ukrainian Hryvnia
    UGX, // Ugandan Shilling
    USD, // United States Dollar
    UYU, // Uruguayan Peso
    UZS, // Uzbekistani Som
    VEF, // Venezuelan Bolívar
    VND, // Vietnamese Đồng
    VUV, // Vanuatu Vatu
    WST, // Samoan Tala
    XAF, // Central African Cfa Franc
    XCD, // East Caribbean Dollar
    XOF, // West African Cfa Franc
    XPF, // Cfp Franc
    YER, // Yemeni Rial
    ZAR, // South African Rand
    ZMW, // Zambian Kwacha
}

impl Default for Currency {
    fn default() -> Self {
        Currency::USD
    }
}

impl fmt::Display for Currency {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "{}", &format!("{:?}", self))
    }
}