123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- /*
- * Copyright (c) 2021, Tim Flynn <trflynn89@pm.me>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
- #include <LibUnicode/CurrencyCode.h>
- namespace Unicode {
- static auto const& ensure_currency_codes()
- {
- // https://www.iso.org/iso-4217-currency-codes.html
- // https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/amendments/lists/list_one.xml
- static HashMap<StringView, CurrencyCode> currency_codes {
- { "AED"sv, { 2 } },
- { "AFN"sv, { 2 } },
- { "ALL"sv, { 2 } },
- { "AMD"sv, { 2 } },
- { "ANG"sv, { 2 } },
- { "AOA"sv, { 2 } },
- { "ARS"sv, { 2 } },
- { "AUD"sv, { 2 } },
- { "AWG"sv, { 2 } },
- { "AZN"sv, { 2 } },
- { "BAM"sv, { 2 } },
- { "BBD"sv, { 2 } },
- { "BDT"sv, { 2 } },
- { "BGN"sv, { 2 } },
- { "BHD"sv, { 3 } },
- { "BIF"sv, { 0 } },
- { "BMD"sv, { 2 } },
- { "BND"sv, { 2 } },
- { "BOB"sv, { 2 } },
- { "BOV"sv, { 2 } },
- { "BRL"sv, { 2 } },
- { "BSD"sv, { 2 } },
- { "BTN"sv, { 2 } },
- { "BWP"sv, { 2 } },
- { "BYN"sv, { 2 } },
- { "BZD"sv, { 2 } },
- { "CAD"sv, { 2 } },
- { "CDF"sv, { 2 } },
- { "CHE"sv, { 2 } },
- { "CHF"sv, { 2 } },
- { "CHW"sv, { 2 } },
- { "CLF"sv, { 4 } },
- { "CLP"sv, { 0 } },
- { "CNY"sv, { 2 } },
- { "COP"sv, { 2 } },
- { "COU"sv, { 2 } },
- { "CRC"sv, { 2 } },
- { "CUC"sv, { 2 } },
- { "CUP"sv, { 2 } },
- { "CVE"sv, { 2 } },
- { "CZK"sv, { 2 } },
- { "DJF"sv, { 0 } },
- { "DKK"sv, { 2 } },
- { "DOP"sv, { 2 } },
- { "DZD"sv, { 2 } },
- { "EGP"sv, { 2 } },
- { "ERN"sv, { 2 } },
- { "ETB"sv, { 2 } },
- { "EUR"sv, { 2 } },
- { "FJD"sv, { 2 } },
- { "FKP"sv, { 2 } },
- { "GBP"sv, { 2 } },
- { "GEL"sv, { 2 } },
- { "GHS"sv, { 2 } },
- { "GIP"sv, { 2 } },
- { "GMD"sv, { 2 } },
- { "GNF"sv, { 0 } },
- { "GTQ"sv, { 2 } },
- { "GYD"sv, { 2 } },
- { "HKD"sv, { 2 } },
- { "HNL"sv, { 2 } },
- { "HRK"sv, { 2 } },
- { "HTG"sv, { 2 } },
- { "HUF"sv, { 2 } },
- { "IDR"sv, { 2 } },
- { "ILS"sv, { 2 } },
- { "INR"sv, { 2 } },
- { "IQD"sv, { 3 } },
- { "IRR"sv, { 2 } },
- { "ISK"sv, { 0 } },
- { "JMD"sv, { 2 } },
- { "JOD"sv, { 3 } },
- { "JPY"sv, { 0 } },
- { "KES"sv, { 2 } },
- { "KGS"sv, { 2 } },
- { "KHR"sv, { 2 } },
- { "KMF"sv, { 0 } },
- { "KPW"sv, { 2 } },
- { "KRW"sv, { 0 } },
- { "KWD"sv, { 3 } },
- { "KYD"sv, { 2 } },
- { "KZT"sv, { 2 } },
- { "LAK"sv, { 2 } },
- { "LBP"sv, { 2 } },
- { "LKR"sv, { 2 } },
- { "LRD"sv, { 2 } },
- { "LSL"sv, { 2 } },
- { "LYD"sv, { 3 } },
- { "MAD"sv, { 2 } },
- { "MDL"sv, { 2 } },
- { "MGA"sv, { 2 } },
- { "MKD"sv, { 2 } },
- { "MMK"sv, { 2 } },
- { "MNT"sv, { 2 } },
- { "MOP"sv, { 2 } },
- { "MRU"sv, { 2 } },
- { "MUR"sv, { 2 } },
- { "MVR"sv, { 2 } },
- { "MWK"sv, { 2 } },
- { "MXN"sv, { 2 } },
- { "MXV"sv, { 2 } },
- { "MYR"sv, { 2 } },
- { "MZN"sv, { 2 } },
- { "NAD"sv, { 2 } },
- { "NGN"sv, { 2 } },
- { "NIO"sv, { 2 } },
- { "NOK"sv, { 2 } },
- { "NPR"sv, { 2 } },
- { "NZD"sv, { 2 } },
- { "OMR"sv, { 3 } },
- { "PAB"sv, { 2 } },
- { "PEN"sv, { 2 } },
- { "PGK"sv, { 2 } },
- { "PHP"sv, { 2 } },
- { "PKR"sv, { 2 } },
- { "PLN"sv, { 2 } },
- { "PYG"sv, { 0 } },
- { "QAR"sv, { 2 } },
- { "RON"sv, { 2 } },
- { "RSD"sv, { 2 } },
- { "RUB"sv, { 2 } },
- { "RWF"sv, { 0 } },
- { "SAR"sv, { 2 } },
- { "SBD"sv, { 2 } },
- { "SCR"sv, { 2 } },
- { "SDG"sv, { 2 } },
- { "SEK"sv, { 2 } },
- { "SGD"sv, { 2 } },
- { "SHP"sv, { 2 } },
- { "SLL"sv, { 2 } },
- { "SOS"sv, { 2 } },
- { "SRD"sv, { 2 } },
- { "SSP"sv, { 2 } },
- { "STN"sv, { 2 } },
- { "SVC"sv, { 2 } },
- { "SYP"sv, { 2 } },
- { "SZL"sv, { 2 } },
- { "THB"sv, { 2 } },
- { "TJS"sv, { 2 } },
- { "TMT"sv, { 2 } },
- { "TND"sv, { 3 } },
- { "TOP"sv, { 2 } },
- { "TRY"sv, { 2 } },
- { "TTD"sv, { 2 } },
- { "TWD"sv, { 2 } },
- { "TZS"sv, { 2 } },
- { "UAH"sv, { 2 } },
- { "UGX"sv, { 0 } },
- { "USD"sv, { 2 } },
- { "USN"sv, { 2 } },
- { "UYI"sv, { 0 } },
- { "UYU"sv, { 2 } },
- { "UYW"sv, { 4 } },
- { "UZS"sv, { 2 } },
- { "VES"sv, { 2 } },
- { "VND"sv, { 0 } },
- { "VUV"sv, { 0 } },
- { "WST"sv, { 2 } },
- { "XAF"sv, { 0 } },
- { "XAG"sv, { {} } },
- { "XAU"sv, { {} } },
- { "XBA"sv, { {} } },
- { "XBB"sv, { {} } },
- { "XBC"sv, { {} } },
- { "XBD"sv, { {} } },
- { "XCD"sv, { 2 } },
- { "XDR"sv, { {} } },
- { "XOF"sv, { 0 } },
- { "XPD"sv, { {} } },
- { "XPF"sv, { 0 } },
- { "XPT"sv, { {} } },
- { "XSU"sv, { {} } },
- { "XTS"sv, { {} } },
- { "XUA"sv, { {} } },
- { "XXX"sv, { {} } },
- { "YER"sv, { 2 } },
- { "ZAR"sv, { 2 } },
- { "ZMW"sv, { 2 } },
- { "ZWL"sv, { 2 } },
- };
- return currency_codes;
- }
- Optional<CurrencyCode> get_currency_code(StringView currency)
- {
- static auto const& currency_codes = ensure_currency_codes();
- return currency_codes.get(currency);
- }
- }
|