1#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
2pub enum Currency {
3 #[default]
4 AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLE, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL, }
185
186impl Currency {
187 pub const fn from_bytes(input: &[u8]) -> Option<Currency> {
188 match input {
189 b"AED" => Some(Currency::AED),
190 b"AFN" => Some(Currency::AFN),
191 b"ALL" => Some(Currency::ALL),
192 b"AMD" => Some(Currency::AMD),
193 b"ANG" => Some(Currency::ANG),
194 b"AOA" => Some(Currency::AOA),
195 b"ARS" => Some(Currency::ARS),
196 b"AUD" => Some(Currency::AUD),
197 b"AWG" => Some(Currency::AWG),
198 b"AZN" => Some(Currency::AZN),
199 b"BAM" => Some(Currency::BAM),
200 b"BBD" => Some(Currency::BBD),
201 b"BDT" => Some(Currency::BDT),
202 b"BGN" => Some(Currency::BGN),
203 b"BHD" => Some(Currency::BHD),
204 b"BIF" => Some(Currency::BIF),
205 b"BMD" => Some(Currency::BMD),
206 b"BND" => Some(Currency::BND),
207 b"BOB" => Some(Currency::BOB),
208 b"BOV" => Some(Currency::BOV),
209 b"BRL" => Some(Currency::BRL),
210 b"BSD" => Some(Currency::BSD),
211 b"BTN" => Some(Currency::BTN),
212 b"BWP" => Some(Currency::BWP),
213 b"BYN" => Some(Currency::BYN),
214 b"BZD" => Some(Currency::BZD),
215 b"CAD" => Some(Currency::CAD),
216 b"CDF" => Some(Currency::CDF),
217 b"CHE" => Some(Currency::CHE),
218 b"CHF" => Some(Currency::CHF),
219 b"CHW" => Some(Currency::CHW),
220 b"CLF" => Some(Currency::CLF),
221 b"CLP" => Some(Currency::CLP),
222 b"CNY" => Some(Currency::CNY),
223 b"COP" => Some(Currency::COP),
224 b"COU" => Some(Currency::COU),
225 b"CRC" => Some(Currency::CRC),
226 b"CUC" => Some(Currency::CUC),
227 b"CUP" => Some(Currency::CUP),
228 b"CVE" => Some(Currency::CVE),
229 b"CZK" => Some(Currency::CZK),
230 b"DJF" => Some(Currency::DJF),
231 b"DKK" => Some(Currency::DKK),
232 b"DOP" => Some(Currency::DOP),
233 b"DZD" => Some(Currency::DZD),
234 b"EGP" => Some(Currency::EGP),
235 b"ERN" => Some(Currency::ERN),
236 b"ETB" => Some(Currency::ETB),
237 b"EUR" => Some(Currency::EUR),
238 b"FJD" => Some(Currency::FJD),
239 b"FKP" => Some(Currency::FKP),
240 b"GBP" => Some(Currency::GBP),
241 b"GEL" => Some(Currency::GEL),
242 b"GHS" => Some(Currency::GHS),
243 b"GIP" => Some(Currency::GIP),
244 b"GMD" => Some(Currency::GMD),
245 b"GNF" => Some(Currency::GNF),
246 b"GTQ" => Some(Currency::GTQ),
247 b"GYD" => Some(Currency::GYD),
248 b"HKD" => Some(Currency::HKD),
249 b"HNL" => Some(Currency::HNL),
250 b"HRK" => Some(Currency::HRK),
251 b"HTG" => Some(Currency::HTG),
252 b"HUF" => Some(Currency::HUF),
253 b"IDR" => Some(Currency::IDR),
254 b"ILS" => Some(Currency::ILS),
255 b"INR" => Some(Currency::INR),
256 b"IQD" => Some(Currency::IQD),
257 b"IRR" => Some(Currency::IRR),
258 b"ISK" => Some(Currency::ISK),
259 b"JMD" => Some(Currency::JMD),
260 b"JOD" => Some(Currency::JOD),
261 b"JPY" => Some(Currency::JPY),
262 b"KES" => Some(Currency::KES),
263 b"KGS" => Some(Currency::KGS),
264 b"KHR" => Some(Currency::KHR),
265 b"KMF" => Some(Currency::KMF),
266 b"KPW" => Some(Currency::KPW),
267 b"KRW" => Some(Currency::KRW),
268 b"KWD" => Some(Currency::KWD),
269 b"KYD" => Some(Currency::KYD),
270 b"KZT" => Some(Currency::KZT),
271 b"LAK" => Some(Currency::LAK),
272 b"LBP" => Some(Currency::LBP),
273 b"LKR" => Some(Currency::LKR),
274 b"LRD" => Some(Currency::LRD),
275 b"LSL" => Some(Currency::LSL),
276 b"LYD" => Some(Currency::LYD),
277 b"MAD" => Some(Currency::MAD),
278 b"MDL" => Some(Currency::MDL),
279 b"MGA" => Some(Currency::MGA),
280 b"MKD" => Some(Currency::MKD),
281 b"MMK" => Some(Currency::MMK),
282 b"MNT" => Some(Currency::MNT),
283 b"MOP" => Some(Currency::MOP),
284 b"MRU" => Some(Currency::MRU),
285 b"MUR" => Some(Currency::MUR),
286 b"MVR" => Some(Currency::MVR),
287 b"MWK" => Some(Currency::MWK),
288 b"MXN" => Some(Currency::MXN),
289 b"MXV" => Some(Currency::MXV),
290 b"MYR" => Some(Currency::MYR),
291 b"MZN" => Some(Currency::MZN),
292 b"NAD" => Some(Currency::NAD),
293 b"NGN" => Some(Currency::NGN),
294 b"NIO" => Some(Currency::NIO),
295 b"NOK" => Some(Currency::NOK),
296 b"NPR" => Some(Currency::NPR),
297 b"NZD" => Some(Currency::NZD),
298 b"OMR" => Some(Currency::OMR),
299 b"PAB" => Some(Currency::PAB),
300 b"PEN" => Some(Currency::PEN),
301 b"PGK" => Some(Currency::PGK),
302 b"PHP" => Some(Currency::PHP),
303 b"PKR" => Some(Currency::PKR),
304 b"PLN" => Some(Currency::PLN),
305 b"PYG" => Some(Currency::PYG),
306 b"QAR" => Some(Currency::QAR),
307 b"RON" => Some(Currency::RON),
308 b"RSD" => Some(Currency::RSD),
309 b"RUB" => Some(Currency::RUB),
310 b"RWF" => Some(Currency::RWF),
311 b"SAR" => Some(Currency::SAR),
312 b"SBD" => Some(Currency::SBD),
313 b"SCR" => Some(Currency::SCR),
314 b"SDG" => Some(Currency::SDG),
315 b"SEK" => Some(Currency::SEK),
316 b"SGD" => Some(Currency::SGD),
317 b"SHP" => Some(Currency::SHP),
318 b"SLE" => Some(Currency::SLE),
319 b"SOS" => Some(Currency::SOS),
320 b"SRD" => Some(Currency::SRD),
321 b"SSP" => Some(Currency::SSP),
322 b"STN" => Some(Currency::STN),
323 b"SVC" => Some(Currency::SVC),
324 b"SYP" => Some(Currency::SYP),
325 b"SZL" => Some(Currency::SZL),
326 b"THB" => Some(Currency::THB),
327 b"TJS" => Some(Currency::TJS),
328 b"TMT" => Some(Currency::TMT),
329 b"TND" => Some(Currency::TND),
330 b"TOP" => Some(Currency::TOP),
331 b"TRY" => Some(Currency::TRY),
332 b"TTD" => Some(Currency::TTD),
333 b"TWD" => Some(Currency::TWD),
334 b"TZS" => Some(Currency::TZS),
335 b"UAH" => Some(Currency::UAH),
336 b"UGX" => Some(Currency::UGX),
337 b"USD" => Some(Currency::USD),
338 b"USN" => Some(Currency::USN),
339 b"UYI" => Some(Currency::UYI),
340 b"UYU" => Some(Currency::UYU),
341 b"UYW" => Some(Currency::UYW),
342 b"UZS" => Some(Currency::UZS),
343 b"VED" => Some(Currency::VED),
344 b"VES" => Some(Currency::VES),
345 b"VND" => Some(Currency::VND),
346 b"VUV" => Some(Currency::VUV),
347 b"WST" => Some(Currency::WST),
348 b"XAF" => Some(Currency::XAF),
349 b"XAG" => Some(Currency::XAG),
350 b"XAU" => Some(Currency::XAU),
351 b"XBA" => Some(Currency::XBA),
352 b"XBB" => Some(Currency::XBB),
353 b"XBC" => Some(Currency::XBC),
354 b"XBD" => Some(Currency::XBD),
355 b"XCD" => Some(Currency::XCD),
356 b"XDR" => Some(Currency::XDR),
357 b"XOF" => Some(Currency::XOF),
358 b"XPD" => Some(Currency::XPD),
359 b"XPF" => Some(Currency::XPF),
360 b"XPT" => Some(Currency::XPT),
361 b"XSU" => Some(Currency::XSU),
362 b"XTS" => Some(Currency::XTS),
363 b"XUA" => Some(Currency::XUA),
364 b"XXX" => Some(Currency::XXX),
365 b"YER" => Some(Currency::YER),
366 b"ZAR" => Some(Currency::ZAR),
367 b"ZMW" => Some(Currency::ZMW),
368 b"ZWL" => Some(Currency::ZWL),
369 _ => None,
370 }
371 }
372
373 pub const fn to_bytes(&self) -> &'static [u8] {
374 match self {
375 Currency::AED => b"AED",
376 Currency::AFN => b"AFN",
377 Currency::ALL => b"ALL",
378 Currency::AMD => b"AMD",
379 Currency::ANG => b"ANG",
380 Currency::AOA => b"AOA",
381 Currency::ARS => b"ARS",
382 Currency::AUD => b"AUD",
383 Currency::AWG => b"AWG",
384 Currency::AZN => b"AZN",
385 Currency::BAM => b"BAM",
386 Currency::BBD => b"BBD",
387 Currency::BDT => b"BDT",
388 Currency::BGN => b"BGN",
389 Currency::BHD => b"BHD",
390 Currency::BIF => b"BIF",
391 Currency::BMD => b"BMD",
392 Currency::BND => b"BND",
393 Currency::BOB => b"BOB",
394 Currency::BOV => b"BOV",
395 Currency::BRL => b"BRL",
396 Currency::BSD => b"BSD",
397 Currency::BTN => b"BTN",
398 Currency::BWP => b"BWP",
399 Currency::BYN => b"BYN",
400 Currency::BZD => b"BZD",
401 Currency::CAD => b"CAD",
402 Currency::CDF => b"CDF",
403 Currency::CHE => b"CHE",
404 Currency::CHF => b"CHF",
405 Currency::CHW => b"CHW",
406 Currency::CLF => b"CLF",
407 Currency::CLP => b"CLP",
408 Currency::CNY => b"CNY",
409 Currency::COP => b"COP",
410 Currency::COU => b"COU",
411 Currency::CRC => b"CRC",
412 Currency::CUC => b"CUC",
413 Currency::CUP => b"CUP",
414 Currency::CVE => b"CVE",
415 Currency::CZK => b"CZK",
416 Currency::DJF => b"DJF",
417 Currency::DKK => b"DKK",
418 Currency::DOP => b"DOP",
419 Currency::DZD => b"DZD",
420 Currency::EGP => b"EGP",
421 Currency::ERN => b"ERN",
422 Currency::ETB => b"ETB",
423 Currency::EUR => b"EUR",
424 Currency::FJD => b"FJD",
425 Currency::FKP => b"FKP",
426 Currency::GBP => b"GBP",
427 Currency::GEL => b"GEL",
428 Currency::GHS => b"GHS",
429 Currency::GIP => b"GIP",
430 Currency::GMD => b"GMD",
431 Currency::GNF => b"GNF",
432 Currency::GTQ => b"GTQ",
433 Currency::GYD => b"GYD",
434 Currency::HKD => b"HKD",
435 Currency::HNL => b"HNL",
436 Currency::HRK => b"HRK",
437 Currency::HTG => b"HTG",
438 Currency::HUF => b"HUF",
439 Currency::IDR => b"IDR",
440 Currency::ILS => b"ILS",
441 Currency::INR => b"INR",
442 Currency::IQD => b"IQD",
443 Currency::IRR => b"IRR",
444 Currency::ISK => b"ISK",
445 Currency::JMD => b"JMD",
446 Currency::JOD => b"JOD",
447 Currency::JPY => b"JPY",
448 Currency::KES => b"KES",
449 Currency::KGS => b"KGS",
450 Currency::KHR => b"KHR",
451 Currency::KMF => b"KMF",
452 Currency::KPW => b"KPW",
453 Currency::KRW => b"KRW",
454 Currency::KWD => b"KWD",
455 Currency::KYD => b"KYD",
456 Currency::KZT => b"KZT",
457 Currency::LAK => b"LAK",
458 Currency::LBP => b"LBP",
459 Currency::LKR => b"LKR",
460 Currency::LRD => b"LRD",
461 Currency::LSL => b"LSL",
462 Currency::LYD => b"LYD",
463 Currency::MAD => b"MAD",
464 Currency::MDL => b"MDL",
465 Currency::MGA => b"MGA",
466 Currency::MKD => b"MKD",
467 Currency::MMK => b"MMK",
468 Currency::MNT => b"MNT",
469 Currency::MOP => b"MOP",
470 Currency::MRU => b"MRU",
471 Currency::MUR => b"MUR",
472 Currency::MVR => b"MVR",
473 Currency::MWK => b"MWK",
474 Currency::MXN => b"MXN",
475 Currency::MXV => b"MXV",
476 Currency::MYR => b"MYR",
477 Currency::MZN => b"MZN",
478 Currency::NAD => b"NAD",
479 Currency::NGN => b"NGN",
480 Currency::NIO => b"NIO",
481 Currency::NOK => b"NOK",
482 Currency::NPR => b"NPR",
483 Currency::NZD => b"NZD",
484 Currency::OMR => b"OMR",
485 Currency::PAB => b"PAB",
486 Currency::PEN => b"PEN",
487 Currency::PGK => b"PGK",
488 Currency::PHP => b"PHP",
489 Currency::PKR => b"PKR",
490 Currency::PLN => b"PLN",
491 Currency::PYG => b"PYG",
492 Currency::QAR => b"QAR",
493 Currency::RON => b"RON",
494 Currency::RSD => b"RSD",
495 Currency::RUB => b"RUB",
496 Currency::RWF => b"RWF",
497 Currency::SAR => b"SAR",
498 Currency::SBD => b"SBD",
499 Currency::SCR => b"SCR",
500 Currency::SDG => b"SDG",
501 Currency::SEK => b"SEK",
502 Currency::SGD => b"SGD",
503 Currency::SHP => b"SHP",
504 Currency::SLE => b"SLE",
505 Currency::SOS => b"SOS",
506 Currency::SRD => b"SRD",
507 Currency::SSP => b"SSP",
508 Currency::STN => b"STN",
509 Currency::SVC => b"SVC",
510 Currency::SYP => b"SYP",
511 Currency::SZL => b"SZL",
512 Currency::THB => b"THB",
513 Currency::TJS => b"TJS",
514 Currency::TMT => b"TMT",
515 Currency::TND => b"TND",
516 Currency::TOP => b"TOP",
517 Currency::TRY => b"TRY",
518 Currency::TTD => b"TTD",
519 Currency::TWD => b"TWD",
520 Currency::TZS => b"TZS",
521 Currency::UAH => b"UAH",
522 Currency::UGX => b"UGX",
523 Currency::USD => b"USD",
524 Currency::USN => b"USN",
525 Currency::UYI => b"UYI",
526 Currency::UYU => b"UYU",
527 Currency::UYW => b"UYW",
528 Currency::UZS => b"UZS",
529 Currency::VED => b"VED",
530 Currency::VES => b"VES",
531 Currency::VND => b"VND",
532 Currency::VUV => b"VUV",
533 Currency::WST => b"WST",
534 Currency::XAF => b"XAF",
535 Currency::XAG => b"XAG",
536 Currency::XAU => b"XAU",
537 Currency::XBA => b"XBA",
538 Currency::XBB => b"XBB",
539 Currency::XBC => b"XBC",
540 Currency::XBD => b"XBD",
541 Currency::XCD => b"XCD",
542 Currency::XDR => b"XDR",
543 Currency::XOF => b"XOF",
544 Currency::XPD => b"XPD",
545 Currency::XPF => b"XPF",
546 Currency::XPT => b"XPT",
547 Currency::XSU => b"XSU",
548 Currency::XTS => b"XTS",
549 Currency::XUA => b"XUA",
550 Currency::XXX => b"XXX",
551 Currency::YER => b"YER",
552 Currency::ZAR => b"ZAR",
553 Currency::ZMW => b"ZMW",
554 Currency::ZWL => b"ZWL",
555 }
556 }
557}