async_proto/impls/
doubloon.rs

1use {
2    doubloon::{
3        Currency,
4        Money,
5    },
6    async_proto_derive::impl_protocol_for,
7    crate::Protocol,
8};
9
10#[derive(Protocol)]
11#[async_proto(internal)]
12struct MoneyProxy<C> {
13    amount: rust_decimal::Decimal,
14    currency: C,
15}
16
17impl<C: Copy> From<MoneyProxy<C>> for Money<C> {
18    fn from(value: MoneyProxy<C>) -> Self {
19        Self::new(value.amount, value.currency)
20    }
21}
22
23impl<'a, C: Currency + Copy> From<&'a Money<C>> for MoneyProxy<C> {
24    fn from(value: &'a Money<C>) -> Self {
25        Self {
26            amount: value.amount(),
27            currency: value.currency(),
28        }
29    }
30}
31
32impl_protocol_for! {
33    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
34    #[async_proto(via = MoneyProxy<C>, where(C: Protocol + Currency + Copy + Send + Sync + 'static))]
35    type Money<C>;
36
37    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
38    struct doubloon::iso_currencies::AED;
39
40    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
41    struct doubloon::iso_currencies::AFN;
42
43    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
44    struct doubloon::iso_currencies::ALL;
45
46    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
47    struct doubloon::iso_currencies::AMD;
48
49    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
50    struct doubloon::iso_currencies::ANG;
51
52    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
53    struct doubloon::iso_currencies::AOA;
54
55    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
56    struct doubloon::iso_currencies::ARS;
57
58    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
59    struct doubloon::iso_currencies::AUD;
60
61    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
62    struct doubloon::iso_currencies::AWG;
63
64    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
65    struct doubloon::iso_currencies::AZN;
66
67    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
68    struct doubloon::iso_currencies::BAM;
69
70    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
71    struct doubloon::iso_currencies::BBD;
72
73    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
74    struct doubloon::iso_currencies::BDT;
75
76    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
77    struct doubloon::iso_currencies::BGN;
78
79    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
80    struct doubloon::iso_currencies::BHD;
81
82    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
83    struct doubloon::iso_currencies::BIF;
84
85    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
86    struct doubloon::iso_currencies::BMD;
87
88    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
89    struct doubloon::iso_currencies::BND;
90
91    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
92    struct doubloon::iso_currencies::BOB;
93
94    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
95    struct doubloon::iso_currencies::BOV;
96
97    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
98    struct doubloon::iso_currencies::BRL;
99
100    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
101    struct doubloon::iso_currencies::BSD;
102
103    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
104    struct doubloon::iso_currencies::BTN;
105
106    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
107    struct doubloon::iso_currencies::BWP;
108
109    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
110    struct doubloon::iso_currencies::BYN;
111
112    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
113    struct doubloon::iso_currencies::BZD;
114
115    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
116    struct doubloon::iso_currencies::CAD;
117
118    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
119    struct doubloon::iso_currencies::CDF;
120
121    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
122    struct doubloon::iso_currencies::CHE;
123
124    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
125    struct doubloon::iso_currencies::CHF;
126
127    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
128    struct doubloon::iso_currencies::CHW;
129
130    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
131    struct doubloon::iso_currencies::CLF;
132
133    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
134    struct doubloon::iso_currencies::CLP;
135
136    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
137    struct doubloon::iso_currencies::CNY;
138
139    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
140    struct doubloon::iso_currencies::COP;
141
142    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
143    struct doubloon::iso_currencies::COU;
144
145    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
146    struct doubloon::iso_currencies::CRC;
147
148    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
149    struct doubloon::iso_currencies::CUC;
150
151    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
152    struct doubloon::iso_currencies::CUP;
153
154    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
155    struct doubloon::iso_currencies::CVE;
156
157    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
158    struct doubloon::iso_currencies::CZK;
159
160    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
161    struct doubloon::iso_currencies::DJF;
162
163    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
164    struct doubloon::iso_currencies::DKK;
165
166    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
167    struct doubloon::iso_currencies::DOP;
168
169    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
170    struct doubloon::iso_currencies::DZD;
171
172    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
173    struct doubloon::iso_currencies::EGP;
174
175    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
176    struct doubloon::iso_currencies::ERN;
177
178    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
179    struct doubloon::iso_currencies::ETB;
180
181    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
182    struct doubloon::iso_currencies::EUR;
183
184    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
185    struct doubloon::iso_currencies::FJD;
186
187    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
188    struct doubloon::iso_currencies::FKP;
189
190    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
191    struct doubloon::iso_currencies::GBP;
192
193    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
194    struct doubloon::iso_currencies::GEL;
195
196    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
197    struct doubloon::iso_currencies::GHS;
198
199    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
200    struct doubloon::iso_currencies::GIP;
201
202    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
203    struct doubloon::iso_currencies::GMD;
204
205    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
206    struct doubloon::iso_currencies::GNF;
207
208    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
209    struct doubloon::iso_currencies::GTQ;
210
211    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
212    struct doubloon::iso_currencies::GYD;
213
214    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
215    struct doubloon::iso_currencies::HKD;
216
217    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
218    struct doubloon::iso_currencies::HNL;
219
220    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
221    struct doubloon::iso_currencies::HTG;
222
223    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
224    struct doubloon::iso_currencies::HUF;
225
226    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
227    struct doubloon::iso_currencies::IDR;
228
229    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
230    struct doubloon::iso_currencies::ILS;
231
232    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
233    struct doubloon::iso_currencies::INR;
234
235    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
236    struct doubloon::iso_currencies::IQD;
237
238    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
239    struct doubloon::iso_currencies::IRR;
240
241    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
242    struct doubloon::iso_currencies::ISK;
243
244    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
245    struct doubloon::iso_currencies::JMD;
246
247    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
248    struct doubloon::iso_currencies::JOD;
249
250    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
251    struct doubloon::iso_currencies::JPY;
252
253    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
254    struct doubloon::iso_currencies::KES;
255
256    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
257    struct doubloon::iso_currencies::KGS;
258
259    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
260    struct doubloon::iso_currencies::KHR;
261
262    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
263    struct doubloon::iso_currencies::KMF;
264
265    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
266    struct doubloon::iso_currencies::KPW;
267
268    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
269    struct doubloon::iso_currencies::KRW;
270
271    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
272    struct doubloon::iso_currencies::KWD;
273
274    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
275    struct doubloon::iso_currencies::KYD;
276
277    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
278    struct doubloon::iso_currencies::KZT;
279
280    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
281    struct doubloon::iso_currencies::LAK;
282
283    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
284    struct doubloon::iso_currencies::LBP;
285
286    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
287    struct doubloon::iso_currencies::LKR;
288
289    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
290    struct doubloon::iso_currencies::LRD;
291
292    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
293    struct doubloon::iso_currencies::LSL;
294
295    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
296    struct doubloon::iso_currencies::LYD;
297
298    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
299    struct doubloon::iso_currencies::MAD;
300
301    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
302    struct doubloon::iso_currencies::MDL;
303
304    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
305    struct doubloon::iso_currencies::MGA;
306
307    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
308    struct doubloon::iso_currencies::MKD;
309
310    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
311    struct doubloon::iso_currencies::MMK;
312
313    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
314    struct doubloon::iso_currencies::MNT;
315
316    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
317    struct doubloon::iso_currencies::MOP;
318
319    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
320    struct doubloon::iso_currencies::MRU;
321
322    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
323    struct doubloon::iso_currencies::MUR;
324
325    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
326    struct doubloon::iso_currencies::MVR;
327
328    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
329    struct doubloon::iso_currencies::MWK;
330
331    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
332    struct doubloon::iso_currencies::MXN;
333
334    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
335    struct doubloon::iso_currencies::MXV;
336
337    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
338    struct doubloon::iso_currencies::MYR;
339
340    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
341    struct doubloon::iso_currencies::MZN;
342
343    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
344    struct doubloon::iso_currencies::NAD;
345
346    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
347    struct doubloon::iso_currencies::NGN;
348
349    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
350    struct doubloon::iso_currencies::NIO;
351
352    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
353    struct doubloon::iso_currencies::NOK;
354
355    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
356    struct doubloon::iso_currencies::NPR;
357
358    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
359    struct doubloon::iso_currencies::NZD;
360
361    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
362    struct doubloon::iso_currencies::OMR;
363
364    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
365    struct doubloon::iso_currencies::PAB;
366
367    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
368    struct doubloon::iso_currencies::PEN;
369
370    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
371    struct doubloon::iso_currencies::PGK;
372
373    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
374    struct doubloon::iso_currencies::PHP;
375
376    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
377    struct doubloon::iso_currencies::PKR;
378
379    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
380    struct doubloon::iso_currencies::PLN;
381
382    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
383    struct doubloon::iso_currencies::PYG;
384
385    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
386    struct doubloon::iso_currencies::QAR;
387
388    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
389    struct doubloon::iso_currencies::RON;
390
391    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
392    struct doubloon::iso_currencies::RSD;
393
394    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
395    struct doubloon::iso_currencies::RUB;
396
397    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
398    struct doubloon::iso_currencies::RWF;
399
400    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
401    struct doubloon::iso_currencies::SAR;
402
403    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
404    struct doubloon::iso_currencies::SBD;
405
406    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
407    struct doubloon::iso_currencies::SCR;
408
409    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
410    struct doubloon::iso_currencies::SDG;
411
412    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
413    struct doubloon::iso_currencies::SEK;
414
415    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
416    struct doubloon::iso_currencies::SGD;
417
418    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
419    struct doubloon::iso_currencies::SHP;
420
421    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
422    struct doubloon::iso_currencies::SLE;
423
424    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
425    struct doubloon::iso_currencies::SOS;
426
427    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
428    struct doubloon::iso_currencies::SRD;
429
430    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
431    struct doubloon::iso_currencies::SSP;
432
433    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
434    struct doubloon::iso_currencies::STN;
435
436    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
437    struct doubloon::iso_currencies::SVC;
438
439    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
440    struct doubloon::iso_currencies::SYP;
441
442    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
443    struct doubloon::iso_currencies::SZL;
444
445    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
446    struct doubloon::iso_currencies::THB;
447
448    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
449    struct doubloon::iso_currencies::TJS;
450
451    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
452    struct doubloon::iso_currencies::TMT;
453
454    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
455    struct doubloon::iso_currencies::TND;
456
457    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
458    struct doubloon::iso_currencies::TOP;
459
460    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
461    struct doubloon::iso_currencies::TRY;
462
463    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
464    struct doubloon::iso_currencies::TTD;
465
466    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
467    struct doubloon::iso_currencies::TWD;
468
469    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
470    struct doubloon::iso_currencies::TZS;
471
472    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
473    struct doubloon::iso_currencies::UAH;
474
475    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
476    struct doubloon::iso_currencies::UGX;
477
478    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
479    struct doubloon::iso_currencies::USD;
480
481    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
482    struct doubloon::iso_currencies::USN;
483
484    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
485    struct doubloon::iso_currencies::UYI;
486
487    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
488    struct doubloon::iso_currencies::UYU;
489
490    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
491    struct doubloon::iso_currencies::UYW;
492
493    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
494    struct doubloon::iso_currencies::UZS;
495
496    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
497    struct doubloon::iso_currencies::VED;
498
499    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
500    struct doubloon::iso_currencies::VES;
501
502    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
503    struct doubloon::iso_currencies::VND;
504
505    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
506    struct doubloon::iso_currencies::VUV;
507
508    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
509    struct doubloon::iso_currencies::WST;
510
511    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
512    struct doubloon::iso_currencies::XAF;
513
514    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
515    struct doubloon::iso_currencies::XAG;
516
517    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
518    struct doubloon::iso_currencies::XAU;
519
520    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
521    struct doubloon::iso_currencies::XBA;
522
523    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
524    struct doubloon::iso_currencies::XBB;
525
526    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
527    struct doubloon::iso_currencies::XBC;
528
529    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
530    struct doubloon::iso_currencies::XBD;
531
532    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
533    struct doubloon::iso_currencies::XCD;
534
535    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
536    struct doubloon::iso_currencies::XDR;
537
538    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
539    struct doubloon::iso_currencies::XOF;
540
541    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
542    struct doubloon::iso_currencies::XPD;
543
544    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
545    struct doubloon::iso_currencies::XPF;
546
547    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
548    struct doubloon::iso_currencies::XPT;
549
550    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
551    struct doubloon::iso_currencies::XSU;
552
553    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
554    struct doubloon::iso_currencies::XTS;
555
556    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
557    struct doubloon::iso_currencies::XUA;
558
559    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
560    struct doubloon::iso_currencies::XXX;
561
562    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
563    struct doubloon::iso_currencies::YER;
564
565    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
566    struct doubloon::iso_currencies::ZAR;
567
568    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
569    struct doubloon::iso_currencies::ZMW;
570
571    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
572    struct doubloon::iso_currencies::ZWG;
573
574    #[async_proto(attr(cfg_attr(docsrs, doc(cfg(feature = "doubloon")))))]
575    struct doubloon::iso_currencies::ZWL;
576}