perspective_viewer/config/number_string_format/
enums.rs

1// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
2// ┃ ██████ ██████ ██████       █      █      █      █      █ █▄  ▀███ █       ┃
3// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█  ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄  ▀█ █ ▀▀▀▀▀ ┃
4// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄   █ ▄▄▄▄▄ ┃
5// ┃ █      ██████ █  ▀█▄       █ ██████      █      ███▌▐███ ███████▄ █       ┃
6// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
7// ┃ Copyright (c) 2017, the Perspective Authors.                              ┃
8// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
9// ┃ This file is part of the Perspective library, distributed under the terms ┃
10// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
11// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
12
13use serde::{Deserialize, Serialize};
14use strum::{Display, EnumIter};
15use ts_rs::TS;
16
17// NOTE: These should probably be pulled from a server somewhere.
18
19// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currency_2
20#[derive(Clone, Copy, Debug, Default, PartialEq, Display, EnumIter, Serialize, Deserialize, TS)]
21pub enum CurrencyCode {
22    AED,
23    AFN,
24    ALL,
25    AMD,
26    ANG,
27    AOA,
28    ARS,
29    AUD,
30    AWG,
31    AZN,
32    BAM,
33    BBD,
34    BDT,
35    BGN,
36    BHD,
37    BIF,
38    BMD,
39    BND,
40    BOB,
41    BOV,
42    BRL,
43    BSD,
44    BTN,
45    BWP,
46    BYR,
47    BZD,
48    CAD,
49    CDF,
50    CHE,
51    CHF,
52    CHW,
53    CLF,
54    CLP,
55    CNY,
56    COP,
57    COU,
58    CRC,
59    CUC,
60    CUP,
61    CVE,
62    CZK,
63    DJF,
64    DKK,
65    DOP,
66    DZD,
67    EGP,
68    ERN,
69    ETB,
70    EUR,
71    FJD,
72    FKP,
73    GBP,
74    GEL,
75    GHS,
76    GIP,
77    GMD,
78    GNF,
79    GTQ,
80    GYD,
81    HKD,
82    HNL,
83    HRK,
84    HTG,
85    HUF,
86    IDR,
87    ILS,
88    INR,
89    IQD,
90    IRR,
91    ISK,
92    JMD,
93    JOD,
94    JPY,
95    KES,
96    KGS,
97    KHR,
98    KMF,
99    KPW,
100    KRW,
101    KWD,
102    KYD,
103    KZT,
104    LAK,
105    LBP,
106    LKR,
107    LRD,
108    LSL,
109    LTL,
110    LVL,
111    LYD,
112    MAD,
113    MDL,
114    MGA,
115    MKD,
116    MMK,
117    MNT,
118    MOP,
119    MRO,
120    MUR,
121    MVR,
122    MWK,
123    MXN,
124    MXV,
125    MYR,
126    MZN,
127    NAD,
128    NGN,
129    NIO,
130    NOK,
131    NPR,
132    NZD,
133    OMR,
134    PAB,
135    PEN,
136    PGK,
137    PHP,
138    PKR,
139    PLN,
140    PYG,
141    QAR,
142    RON,
143    RSD,
144    RUB,
145    RWF,
146    SAR,
147    SBD,
148    SCR,
149    SDG,
150    SEK,
151    SGD,
152    SHP,
153    SLL,
154    SOS,
155    SRD,
156    SSP,
157    STD,
158    SYP,
159    SZL,
160    THB,
161    TJS,
162    TMT,
163    TND,
164    TOP,
165    TRY,
166    TTD,
167    TWD,
168    TZS,
169    UAH,
170    UGX,
171    #[default]
172    USD,
173    USN,
174    USS,
175    UYI,
176    UYU,
177    UZS,
178    VEF,
179    VND,
180    VUV,
181    WST,
182    XAF,
183    XAG,
184    XAU,
185    XBA,
186    XBB,
187    XBC,
188    XBD,
189    XCD,
190    XDR,
191    XFU,
192    XOF,
193    XPD,
194    XPF,
195    XPT,
196    XTS,
197    XXX,
198    YER,
199    ZAR,
200    ZMW,
201}
202
203// https://tc39.es/ecma402/#table-sanctioned-single-unit-identifiers
204#[derive(Clone, Copy, Debug, Default, PartialEq, Display, EnumIter, Serialize, Deserialize, TS)]
205// #[serde(rename_all = "kebab-case")]
206pub enum Unit {
207    #[serde(rename = "acre")]
208    Acre,
209    #[serde(rename = "bit")]
210    Bit,
211    #[serde(rename = "byte")]
212    Byte,
213    #[serde(rename = "celsius")]
214    Celsius,
215    #[serde(rename = "centimeter")]
216    Centimeter,
217    #[serde(rename = "day")]
218    Day,
219    #[serde(rename = "degree")]
220    Degree,
221    #[serde(rename = "fahrenheit")]
222    Fahrenheit,
223    #[serde(rename = "fluid-ounce")]
224    FluidOunce,
225    #[serde(rename = "foot")]
226    Foot,
227    #[serde(rename = "gallob")]
228    Gallon,
229    #[serde(rename = "gigabit")]
230    Gigabit,
231    #[serde(rename = "gigabyte")]
232    Gigabyte,
233    #[serde(rename = "gram")]
234    Gram,
235    #[serde(rename = "hectare")]
236    Hectare,
237    #[serde(rename = "hour")]
238    Hour,
239    #[serde(rename = "inch")]
240    Inch,
241    #[serde(rename = "kilobit")]
242    Kilobit,
243    #[serde(rename = "kilobyte")]
244    Kilobyte,
245    #[serde(rename = "kilogram")]
246    Kilogram,
247    #[serde(rename = "kilometer")]
248    Kilometer,
249    #[serde(rename = "liter")]
250    Liter,
251    #[serde(rename = "megabit")]
252    Megabit,
253    #[serde(rename = "megabyte")]
254    Megabyte,
255    #[serde(rename = "meter")]
256    Meter,
257    #[serde(rename = "microsecond")]
258    Microsecond,
259    #[serde(rename = "mile")]
260    Mile,
261    #[serde(rename = "mile-scandinavian")]
262    MileScandinavian,
263    #[serde(rename = "milliliter")]
264    Milliliter,
265    #[serde(rename = "millimeter")]
266    Millimeter,
267    #[serde(rename = "millisecond")]
268    Millisecond,
269    #[serde(rename = "minute")]
270    Minute,
271    #[serde(rename = "month")]
272    Month,
273    #[serde(rename = "nanosecond")]
274    Nanosecond,
275    #[serde(rename = "ounce")]
276    Ounce,
277    #[serde(rename = "percent")]
278    #[default]
279    Percent,
280    #[serde(rename = "petabyte")]
281    Petabyte,
282    #[serde(rename = "pound")]
283    Pound,
284    #[serde(rename = "second")]
285    Second,
286    #[serde(rename = "stone")]
287    Stone,
288    #[serde(rename = "terabit")]
289    Terabit,
290    #[serde(rename = "terabyte")]
291    Terabyte,
292    #[serde(rename = "week")]
293    Week,
294    #[serde(rename = "yard")]
295    Yard,
296    #[serde(rename = "year")]
297    Year,
298}