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}