Skip to main content

usb_gadget/
lang.rs

1/// USB language id.
2#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
3#[non_exhaustive]
4pub enum Language {
5    /// Afrikaans
6    Afrikaans,
7    /// Albanian
8    Albanian,
9    /// Arabic (Saudi Arabia)
10    ArabicSaudiArabia,
11    /// Arabic (Iraq)
12    ArabicIraq,
13    /// Arabic (Egypt)
14    ArabicEgypt,
15    /// Arabic (Libya)
16    ArabicLibya,
17    /// Arabic (Algeria)
18    ArabicAlgeria,
19    /// Arabic (Morocco)
20    ArabicMorocco,
21    /// Arabic (Tunisia)
22    ArabicTunisia,
23    /// Arabic (Oman)
24    ArabicOman,
25    /// Arabic (Yemen)
26    ArabicYemen,
27    /// Arabic (Syria)
28    ArabicSyria,
29    /// Arabic (Jordan)
30    ArabicJordan,
31    /// Arabic (Lebanon)
32    ArabicLebanon,
33    /// Arabic (Kuwait)
34    ArabicKuwait,
35    /// Arabic (UAE)
36    ArabicUAE,
37    /// Arabic (Bahrain)
38    ArabicBahrain,
39    /// Arabic (Qatar)
40    ArabicQatar,
41    /// Armenian
42    Armenian,
43    /// Assamese
44    Assamese,
45    /// Azeri (Latin)
46    AzeriLatin,
47    /// Azeri (Cyrillic)
48    AzeriCyrillic,
49    /// Basque
50    Basque,
51    /// Belarussian
52    Belarussian,
53    /// Bengali
54    Bengali,
55    /// Bulgarian
56    Bulgarian,
57    /// Burmese
58    Burmese,
59    /// Catalan
60    Catalan,
61    /// Chinese (Taiwan)
62    ChineseTaiwan,
63    /// Chinese (PRC)
64    ChinesePRC,
65    /// Chinese (Hong Kong SAR PRC)
66    ChineseHongKongSARPRC,
67    /// Chinese (Singapore)
68    ChineseSingapore,
69    /// Chinese (Macau SAR)
70    ChineseMacauSAR,
71    /// Croatian
72    Croatian,
73    /// Czech
74    Czech,
75    /// Danish
76    Danish,
77    /// Dutch (Netherlands)
78    DutchNetherlands,
79    /// Dutch (Belgium)
80    DutchBelgium,
81    /// English (United States)
82    #[default]
83    EnglishUnitedStates,
84    /// English (United Kingdom)
85    EnglishUnitedKingdom,
86    /// English (Australian)
87    EnglishAustralian,
88    /// English (Canadian)
89    EnglishCanadian,
90    /// English (New Zealand)
91    EnglishNewZealand,
92    /// English (Ireland)
93    EnglishIreland,
94    /// English (South Africa)
95    EnglishSouthAfrica,
96    /// English (Jamaica)
97    EnglishJamaica,
98    /// English (Caribbean)
99    EnglishCaribbean,
100    /// English (Belize)
101    EnglishBelize,
102    /// English (Trinidad)
103    EnglishTrinidad,
104    /// English (Zimbabwe)
105    EnglishZimbabwe,
106    /// English (Philippines)
107    EnglishPhilippines,
108    /// Estonian
109    Estonian,
110    /// Faeroese
111    Faeroese,
112    /// Farsi
113    Farsi,
114    /// Finnish
115    Finnish,
116    /// French (Standard)
117    FrenchStandard,
118    /// French (Belgian)
119    FrenchBelgian,
120    /// French (Canadian)
121    FrenchCanadian,
122    /// French (Switzerland)
123    FrenchSwitzerland,
124    /// French (Luxembourg)
125    FrenchLuxembourg,
126    /// French (Monaco)
127    FrenchMonaco,
128    /// Georgian
129    Georgian,
130    /// German (Standard)
131    GermanStandard,
132    /// German (Switzerland)
133    GermanSwitzerland,
134    /// German (Austria)
135    GermanAustria,
136    /// German (Luxembourg)
137    GermanLuxembourg,
138    /// German (Liechtenstein)
139    GermanLiechtenstein,
140    /// Greek
141    Greek,
142    /// Gujarati
143    Gujarati,
144    /// Hebrew
145    Hebrew,
146    /// Hindi
147    Hindi,
148    /// Hungarian
149    Hungarian,
150    /// Icelandic
151    Icelandic,
152    /// Indonesian
153    Indonesian,
154    /// Italian (Standard)
155    ItalianStandard,
156    /// Italian (Switzerland)
157    ItalianSwitzerland,
158    /// Japanese
159    Japanese,
160    /// Kannada
161    Kannada,
162    /// KashmiriIndia
163    KashmiriIndia,
164    /// Kazakh
165    Kazakh,
166    /// Konkani
167    Konkani,
168    /// Korean
169    Korean,
170    /// Korean (Johab)
171    KoreanJohab,
172    /// Latvian
173    Latvian,
174    /// Lithuanian
175    Lithuanian,
176    /// Lithuanian (Classic)
177    LithuanianClassic,
178    /// Macedonian
179    Macedonian,
180    /// Malay (Malaysian)
181    MalayMalaysian,
182    /// Malay (Brunei Darussalam)
183    MalayBruneiDarussalam,
184    /// Malayalam
185    Malayalam,
186    /// Manipuri
187    Manipuri,
188    /// Marathi
189    Marathi,
190    /// Nepali (India)
191    NepaliIndia,
192    /// Norwegian (Bokmal)
193    NorwegianBokmal,
194    /// Norwegian (Nynorsk)
195    NorwegianNynorsk,
196    /// Oriya
197    Oriya,
198    /// Polish
199    Polish,
200    /// Portuguese (Brazil)
201    PortugueseBrazil,
202    /// Portuguese (Standard)
203    PortugueseStandard,
204    /// Punjabi
205    Punjabi,
206    /// Romanian
207    Romanian,
208    /// Russian
209    Russian,
210    /// Sanskrit
211    Sanskrit,
212    /// Serbian (Cyrillic)
213    SerbianCyrillic,
214    /// Serbian (Latin)
215    SerbianLatin,
216    /// Sindhi
217    Sindhi,
218    /// Slovak
219    Slovak,
220    /// Slovenian
221    Slovenian,
222    /// Spanish (Traditional Sort)
223    SpanishTraditionalSort,
224    /// Spanish (Mexican)
225    SpanishMexican,
226    /// Spanish (ModernSort)
227    SpanishModernSort,
228    /// Spanish (Guatemala)
229    SpanishGuatemala,
230    /// Spanish (Costa Rica)
231    SpanishCostaRica,
232    /// Spanish (Panama)
233    SpanishPanama,
234    /// Spanish (Dominican Republic)
235    SpanishDominicanRepublic,
236    /// Spanish (Venezuela)
237    SpanishVenezuela,
238    /// Spanish (Colombia)
239    SpanishColombia,
240    /// Spanish (Peru)
241    SpanishPeru,
242    /// Spanish (Argentina)
243    SpanishArgentina,
244    /// Spanish (Ecuador)
245    SpanishEcuador,
246    /// Spanish (Chile)
247    SpanishChile,
248    /// Spanish (Uruguay)
249    SpanishUruguay,
250    /// Spanish (Paraguay)
251    SpanishParaguay,
252    /// Spanish (Bolivia)
253    SpanishBolivia,
254    /// Spanish (El Salvador)
255    SpanishElSalvador,
256    /// Spanish (Honduras)
257    SpanishHonduras,
258    /// Spanish (Nicaragua)
259    SpanishNicaragua,
260    /// Spanish (Puerto Rico)
261    SpanishPuertoRico,
262    /// Sutu
263    Sutu,
264    /// Swahili (Kenya)
265    SwahiliKenya,
266    /// Swedish
267    Swedish,
268    /// Swedish (Finland)
269    SwedishFinland,
270    /// Tamil
271    Tamil,
272    /// Tatar (Tatarstan)
273    TatarTatarstan,
274    /// Telugu
275    Telugu,
276    /// Thai
277    Thai,
278    /// Turkish
279    Turkish,
280    /// Ukrainian
281    Ukrainian,
282    /// Urdu (Pakistan)
283    UrduPakistan,
284    /// Urdu (India)
285    UrduIndia,
286    /// Uzbek (Latin)
287    UzbekLatin,
288    /// Uzbek (Cyrillic)
289    UzbekCyrillic,
290    /// Vietnamese
291    Vietnamese,
292    /// HID usage data descriptor
293    HidUsageDataDescriptor,
294    /// HID vendor defined 1
295    HidVendorDefined1,
296    /// HID vendor defined 2
297    HidVendorDefined2,
298    /// HID vendor defined 3
299    HidVendorDefined3,
300    /// HID vendor defined 4
301    HidVendorDefined4,
302    /// Custom language code
303    Other(u16),
304}
305
306impl From<Language> for u16 {
307    fn from(lang: Language) -> u16 {
308        match lang {
309            Language::Afrikaans => 0x0436,
310            Language::Albanian => 0x041c,
311            Language::ArabicSaudiArabia => 0x0401,
312            Language::ArabicIraq => 0x0801,
313            Language::ArabicEgypt => 0x0c01,
314            Language::ArabicLibya => 0x1001,
315            Language::ArabicAlgeria => 0x1401,
316            Language::ArabicMorocco => 0x1801,
317            Language::ArabicTunisia => 0x1c01,
318            Language::ArabicOman => 0x2001,
319            Language::ArabicYemen => 0x2401,
320            Language::ArabicSyria => 0x2801,
321            Language::ArabicJordan => 0x2c01,
322            Language::ArabicLebanon => 0x3001,
323            Language::ArabicKuwait => 0x3401,
324            Language::ArabicUAE => 0x3801,
325            Language::ArabicBahrain => 0x3c01,
326            Language::ArabicQatar => 0x4001,
327            Language::Armenian => 0x042b,
328            Language::Assamese => 0x044d,
329            Language::AzeriLatin => 0x042c,
330            Language::AzeriCyrillic => 0x082c,
331            Language::Basque => 0x042d,
332            Language::Belarussian => 0x0423,
333            Language::Bengali => 0x0445,
334            Language::Bulgarian => 0x0402,
335            Language::Burmese => 0x0455,
336            Language::Catalan => 0x0403,
337            Language::ChineseTaiwan => 0x0404,
338            Language::ChinesePRC => 0x0804,
339            Language::ChineseHongKongSARPRC => 0x0c04,
340            Language::ChineseSingapore => 0x1004,
341            Language::ChineseMacauSAR => 0x1404,
342            Language::Croatian => 0x041a,
343            Language::Czech => 0x0405,
344            Language::Danish => 0x0406,
345            Language::DutchNetherlands => 0x0413,
346            Language::DutchBelgium => 0x0813,
347            Language::EnglishUnitedStates => 0x0409,
348            Language::EnglishUnitedKingdom => 0x0809,
349            Language::EnglishAustralian => 0x0c09,
350            Language::EnglishCanadian => 0x1009,
351            Language::EnglishNewZealand => 0x1409,
352            Language::EnglishIreland => 0x1809,
353            Language::EnglishSouthAfrica => 0x1c09,
354            Language::EnglishJamaica => 0x2009,
355            Language::EnglishCaribbean => 0x2409,
356            Language::EnglishBelize => 0x2809,
357            Language::EnglishTrinidad => 0x2c09,
358            Language::EnglishZimbabwe => 0x3009,
359            Language::EnglishPhilippines => 0x3409,
360            Language::Estonian => 0x0425,
361            Language::Faeroese => 0x0438,
362            Language::Farsi => 0x0429,
363            Language::Finnish => 0x040b,
364            Language::FrenchStandard => 0x040c,
365            Language::FrenchBelgian => 0x080c,
366            Language::FrenchCanadian => 0x0c0c,
367            Language::FrenchSwitzerland => 0x100c,
368            Language::FrenchLuxembourg => 0x140c,
369            Language::FrenchMonaco => 0x180c,
370            Language::Georgian => 0x0437,
371            Language::GermanStandard => 0x0407,
372            Language::GermanSwitzerland => 0x0807,
373            Language::GermanAustria => 0x0c07,
374            Language::GermanLuxembourg => 0x1007,
375            Language::GermanLiechtenstein => 0x1407,
376            Language::Greek => 0x0408,
377            Language::Gujarati => 0x0447,
378            Language::Hebrew => 0x040d,
379            Language::Hindi => 0x0439,
380            Language::Hungarian => 0x040e,
381            Language::Icelandic => 0x040f,
382            Language::Indonesian => 0x0421,
383            Language::ItalianStandard => 0x0410,
384            Language::ItalianSwitzerland => 0x0810,
385            Language::Japanese => 0x0411,
386            Language::Kannada => 0x044b,
387            Language::KashmiriIndia => 0x0860,
388            Language::Kazakh => 0x043f,
389            Language::Konkani => 0x0457,
390            Language::Korean => 0x0412,
391            Language::KoreanJohab => 0x0812,
392            Language::Latvian => 0x0426,
393            Language::Lithuanian => 0x0427,
394            Language::LithuanianClassic => 0x0827,
395            Language::Macedonian => 0x042f,
396            Language::MalayMalaysian => 0x043e,
397            Language::MalayBruneiDarussalam => 0x083e,
398            Language::Malayalam => 0x044c,
399            Language::Manipuri => 0x0458,
400            Language::Marathi => 0x044e,
401            Language::NepaliIndia => 0x0861,
402            Language::NorwegianBokmal => 0x0414,
403            Language::NorwegianNynorsk => 0x0814,
404            Language::Oriya => 0x0448,
405            Language::Polish => 0x0415,
406            Language::PortugueseBrazil => 0x0416,
407            Language::PortugueseStandard => 0x0816,
408            Language::Punjabi => 0x0446,
409            Language::Romanian => 0x0418,
410            Language::Russian => 0x0419,
411            Language::Sanskrit => 0x044f,
412            Language::SerbianCyrillic => 0x0c1a,
413            Language::SerbianLatin => 0x081a,
414            Language::Sindhi => 0x0459,
415            Language::Slovak => 0x041b,
416            Language::Slovenian => 0x0424,
417            Language::SpanishTraditionalSort => 0x040a,
418            Language::SpanishMexican => 0x080a,
419            Language::SpanishModernSort => 0x0c0a,
420            Language::SpanishGuatemala => 0x100a,
421            Language::SpanishCostaRica => 0x140a,
422            Language::SpanishPanama => 0x180a,
423            Language::SpanishDominicanRepublic => 0x1c0a,
424            Language::SpanishVenezuela => 0x200a,
425            Language::SpanishColombia => 0x240a,
426            Language::SpanishPeru => 0x280a,
427            Language::SpanishArgentina => 0x2c0a,
428            Language::SpanishEcuador => 0x300a,
429            Language::SpanishChile => 0x340a,
430            Language::SpanishUruguay => 0x380a,
431            Language::SpanishParaguay => 0x3c0a,
432            Language::SpanishBolivia => 0x400a,
433            Language::SpanishElSalvador => 0x440a,
434            Language::SpanishHonduras => 0x480a,
435            Language::SpanishNicaragua => 0x4c0a,
436            Language::SpanishPuertoRico => 0x500a,
437            Language::Sutu => 0x0430,
438            Language::SwahiliKenya => 0x0441,
439            Language::Swedish => 0x041d,
440            Language::SwedishFinland => 0x081d,
441            Language::Tamil => 0x0449,
442            Language::TatarTatarstan => 0x0444,
443            Language::Telugu => 0x044a,
444            Language::Thai => 0x041e,
445            Language::Turkish => 0x041f,
446            Language::Ukrainian => 0x0422,
447            Language::UrduPakistan => 0x0420,
448            Language::UrduIndia => 0x0820,
449            Language::UzbekLatin => 0x0443,
450            Language::UzbekCyrillic => 0x0843,
451            Language::Vietnamese => 0x042a,
452            Language::HidUsageDataDescriptor => 0x04ff,
453            Language::HidVendorDefined1 => 0xf0ff,
454            Language::HidVendorDefined2 => 0xf4ff,
455            Language::HidVendorDefined3 => 0xf8ff,
456            Language::HidVendorDefined4 => 0xfcff,
457            Language::Other(other) => other,
458        }
459    }
460}