Oregami
Repositories/oxedyne/fe2o3

oxedyne/fe2o3/fe2o3_net/src/charset.rs

51.9 KiB, 6 runs

created by r1870400018:555, which is this file's identity for as long as the history lasts, whatever it is later renamed to

download · who wrote it · its history

1use oxedyne_fe2o3_core::prelude::*;
2
3use std::{
4 fmt::{
5 self,
6 Display,
7 },
8 str::FromStr,
9};
10
11
12/// [IANA](https://www.iana.org/assignments/media-types/media-types.xhtml)
13#[allow(non_camel_case_types)]
14#[derive(Clone, Debug, Eq, Ord, PartialEq, PartialOrd)]
15pub enum Charset {
16 Us_Ascii,
17 Iso8859_1_1987,
18 Iso8859_2_1987,
19 Iso8859_3_1988,
20 Iso8859_4_1988,
21 Iso8859_5_1988,
22 Iso8859_6_1987,
23 Iso8859_7_1987,
24 Iso8859_8_1988,
25 Iso8859_9_1989,
26 Iso8859_10,
27 Iso6937_2_Add,
28 Jis_x0201,
29 Jis_encoding,
30 Shift_jis,
31 Extended_unix_code_packed_format_for_japanese,
32 Extended_unix_code_fixed_width_for_japanese,
33 Bs_4730,
34 Sen_850200_c,
35 It,
36 Es,
37 Din_66003,
38 Ns_4551_1,
39 Nf_z_62_010,
40 Iso_10646_Utf_1,
41 Iso_646_Basic_1983,
42 Invariant,
43 Iso_646_Irv_1983,
44 Nats_Sefi,
45 Nats_Sefi_Add,
46 Nats_Dano,
47 Nats_Dano_Add,
48 Sen_850200_b,
49 Ks_c_5601_1987,
50 Iso_2022_Kr,
51 Euc_Kr,
52 Iso_2022_Jp,
53 Iso_2022_Jp_2,
54 Jis_c6220_1969_Jp,
55 Jis_c6220_1969_Ro,
56 Pt,
57 Greek7_Old,
58 Latin_Greek,
59 Nf_z_62_010_1973,
60 Latin_Greek_1,
61 Iso_5427,
62 Jis_c6226_1978,
63 Bs_viewdata,
64 Inis,
65 Inis_8,
66 Inis_Cyrillic,
67 Iso_5427_1981,
68 Iso_5428_1980,
69 Gb_1988_80,
70 Gb_2312_80,
71 Ns_4551_2,
72 Videotex_Suppl,
73 Pt2,
74 Es2,
75 Msz_7795_3,
76 Jis_c6226_1983,
77 Greek7,
78 Asmo_449,
79 Iso_Ir_90,
80 Jis_c6229_1984_A,
81 Jis_c6229_1984_B,
82 Jis_c6229_1984_B_Add,
83 Jis_c6229_1984_Hand,
84 Jis_c6229_1984_Hand_Add,
85 Jis_c6229_1984_Kana,
86 Iso_2033_1983,
87 Ansi_x3_110_1983,
88 T_61_7bit,
89 T_61_8bit,
90 Ecma_Cyrillic,
91 Csa_z243_4_1985_1,
92 Csa_z243_4_1985_2,
93 Csa_z243_4_1985_Gr,
94 Iso_8859_6_E,
95 Iso_8859_6_I,
96 T_101_G2,
97 Iso_8859_8_E,
98 Iso_8859_8_I,
99 Csn_369103,
100 Jus_i_B1_002,
101 Iec_p27_1,
102 Jus_i_B1_003_Serb,
103 Jus_i_B1_003_Mac,
104 Greek_Ccitt,
105 Nc_nc00_10_81,
106 Iso_6937_2_25,
107 Gost_19768_74,
108 Iso_8859_Supp,
109 Iso_10367_Box,
110 Latin_Lap,
111 Jis_x0212_1990,
112 Ds_2089,
113 Us_Dk,
114 Dk_Us,
115 Ksc5636,
116 Unicode_1_1_Utf_7,
117 Iso_2022_Cn,
118 Iso_2022_Cn_Ext,
119 Utf_8,
120 Iso_8859_13,
121 Iso_8859_14,
122 Iso_8859_15,
123 Iso_8859_16,
124 Gbk,
125 Gb18030,
126 Osd_ebcdic_df04_15,
127 Osd_ebcdic_df03_irv,
128 Osd_ebcdic_df04_1,
129 Iso_11548_1,
130 Kz_1048,
131 Iso_10646_Ucs_2,
132 Iso_10646_Ucs_4,
133 Iso_10646_Ucs_Basic,
134 Iso_10646_Unicode_Latin1,
135 Iso_10646_J_1,
136 Iso_Unicode_Ibm_1261,
137 Iso_Unicode_Ibm_1268,
138 Iso_Unicode_Ibm_1276,
139 Iso_Unicode_Ibm_1264,
140 Iso_Unicode_Ibm_1265,
141 Unicode_1_1,
142 Scsu,
143 Utf_7,
144 Utf_16be,
145 Utf_16le,
146 Utf_16,
147 Cesu_8,
148 Utf_32,
149 Utf_32be,
150 Utf_32le,
151 Bocu_1,
152 Utf_7_Imap,
153 Iso_8859_1_Windows_3_0_Latin_1,
154 Iso_8859_1_Windows_3_1_Latin_1,
155 Iso_8859_2_Windows_Latin_2,
156 Iso_8859_9_Windows_Latin_5,
157 Hp_Roman8,
158 Adobe_Standard_Encoding,
159 Ventura_Us,
160 Ventura_International,
161 Dec_Mcs,
162 Ibm850,
163 Pc8_Danish_Norwegian,
164 Ibm862,
165 Pc8_Turkish,
166 Ibm_Symbols,
167 Ibm_Thai,
168 Hp_Legal,
169 Hp_Pi_Font,
170 Hp_Math8,
171 Adobe_Symbol_Encoding,
172 Hp_Desktop,
173 Ventura_Math,
174 Microsoft_Publishing,
175 Windows_31j,
176 Gb2312,
177 Big5,
178 Macintosh,
179 Ibm037,
180 Ibm038,
181 Ibm273,
182 Ibm274,
183 Ibm275,
184 Ibm277,
185 Ibm278,
186 Ibm280,
187 Ibm281,
188 Ibm284,
189 Ibm285,
190 Ibm290,
191 Ibm297,
192 Ibm420,
193 Ibm423,
194 Ibm424,
195 Ibm437,
196 Ibm500,
197 Ibm851,
198 Ibm852,
199 Ibm855,
200 Ibm857,
201 Ibm860,
202 Ibm861,
203 Ibm863,
204 Ibm864,
205 Ibm865,
206 Ibm868,
207 Ibm869,
208 Ibm870,
209 Ibm871,
210 Ibm880,
211 Ibm891,
212 Ibm903,
213 Ibm904,
214 Ibm905,
215 Ibm918,
216 Ibm1026,
217 Ebcdic_At_De,
218 Ebcdic_At_De_A,
219 Ebcdic_Ca_Fr,
220 Ebcdic_Dk_No,
221 Ebcdic_Dk_No_A,
222 Ebcdic_Fi_Se,
223 Ebcdic_Fi_Se_A,
224 Ebcdic_Fr,
225 Ebcdic_It,
226 Ebcdic_Pt,
227 Ebcdic_Es,
228 Ebcdic_Es_A,
229 Ebcdic_Es_S,
230 Ebcdic_Uk,
231 Ebcdic_Us,
232 Unknown_8bit,
233 Mnemonic,
234 Mnem,
235 Viscii,
236 Viqr,
237 Koi8_R,
238 Hz_Gb_2312,
239 Ibm866,
240 Ibm775,
241 Koi8_U,
242 Ibm00858,
243 Ibm00924,
244 Ibm01140,
245 Ibm01141,
246 Ibm01142,
247 Ibm01143,
248 Ibm01144,
249 Ibm01145,
250 Ibm01146,
251 Ibm01147,
252 Ibm01148,
253 Ibm01149,
254 Big5_Hkscs,
255 Ibm1047,
256 Ptcp154,
257 Amiga_1251,
258 Koi7_Switched,
259 Brf,
260 Tscii,
261 Cp51932,
262 Windows_874,
263 Windows_1250,
264 Windows_1251,
265 Windows_1252,
266 Windows_1253,
267 Windows_1254,
268 Windows_1255,
269 Windows_1256,
270 Windows_1257,
271 Windows_1258,
272 Tis_620,
273 Cp50220,
274}
275
276impl Display for Charset {
277 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
278 write!(f, "{}", match self {
279 Self::Us_Ascii => "us-ascii",
280 Self::Iso8859_1_1987 => "iso_8859-1:1987",
281 Self::Iso8859_2_1987 => "iso_8859-2:1987",
282 Self::Iso8859_3_1988 => "iso_8859-3:1988",
283 Self::Iso8859_4_1988 => "iso_8859-4:1988",
284 Self::Iso8859_5_1988 => "iso_8859-5:1988",
285 Self::Iso8859_6_1987 => "iso_8859-6:1987",
286 Self::Iso8859_7_1987 => "iso_8859-7:1987",
287 Self::Iso8859_8_1988 => "iso_8859-8:1988",
288 Self::Iso8859_9_1989 => "iso_8859-9:1989",
289 Self::Iso8859_10 => "iso-8859-10",
290 Self::Iso6937_2_Add => "iso_6937-2-add",
291 Self::Jis_x0201 => "jis_x0201",
292 Self::Jis_encoding => "jis_encoding",
293 Self::Shift_jis => "shift_jis",
294 Self::Extended_unix_code_packed_format_for_japanese => "extended_unix_code_packed_format_for_japanese",
295 Self::Extended_unix_code_fixed_width_for_japanese => "extended_unix_code_fixed_width_for_japanese",
296 Self::Bs_4730 => "bs_4730",
297 Self::Sen_850200_c => "sen_850200_c",
298 Self::It => "it",
299 Self::Es => "es",
300 Self::Din_66003 => "din_66003",
301 Self::Ns_4551_1 => "ns_4551-1",
302 Self::Nf_z_62_010 => "nf_z_62-010",
303 Self::Iso_10646_Utf_1 => "iso-10646-utf-1",
304 Self::Iso_646_Basic_1983 => "iso_646.basic:1983",
305 Self::Invariant => "invariant",
306 Self::Iso_646_Irv_1983 => "iso_646.irv:1983",
307 Self::Nats_Sefi => "nats-sefi",
308 Self::Nats_Sefi_Add => "nats-sefi-add",
309 Self::Nats_Dano => "nats-dano",
310 Self::Nats_Dano_Add => "nats-dano-add",
311 Self::Sen_850200_b => "sen_850200_b",
312 Self::Ks_c_5601_1987 => "ks_c_5601-1987",
313 Self::Iso_2022_Kr => "iso-2022-kr",
314 Self::Euc_Kr => "euc-kr",
315 Self::Iso_2022_Jp => "iso-2022-jp",
316 Self::Iso_2022_Jp_2 => "iso-2022-jp-2",
317 Self::Jis_c6220_1969_Jp => "jis_c6220-1969-jp",
318 Self::Jis_c6220_1969_Ro => "jis_c6220-1969-ro",
319 Self::Pt => "pt",
320 Self::Greek7_Old => "greek7-old",
321 Self::Latin_Greek => "latin-greek",
322 Self::Nf_z_62_010_1973 => "nf_z_62-010_(1973)",
323 Self::Latin_Greek_1 => "latin-greek-1",
324 Self::Iso_5427 => "iso_5427",
325 Self::Jis_c6226_1978 => "jis_c6226-1978",
326 Self::Bs_viewdata => "bs_viewdata",
327 Self::Inis => "inis",
328 Self::Inis_8 => "inis-8",
329 Self::Inis_Cyrillic => "inis-cyrillic",
330 Self::Iso_5427_1981 => "iso_5427:1981",
331 Self::Iso_5428_1980 => "iso_5428:1980",
332 Self::Gb_1988_80 => "gb_1988-80",
333 Self::Gb_2312_80 => "gb_2312-80",
334 Self::Ns_4551_2 => "ns_4551-2",
335 Self::Videotex_Suppl => "videotex-suppl",
336 Self::Pt2 => "pt2",
337 Self::Es2 => "es2",
338 Self::Msz_7795_3 => "msz_7795.3",
339 Self::Jis_c6226_1983 => "jis_c6226-1983",
340 Self::Greek7 => "greek7",
341 Self::Asmo_449 => "asmo_449",
342 Self::Iso_Ir_90 => "iso-ir-90",
343 Self::Jis_c6229_1984_A => "jis_c6229-1984-a",
344 Self::Jis_c6229_1984_B => "jis_c6229-1984-b",
345 Self::Jis_c6229_1984_B_Add => "jis_c6229-1984-b-add",
346 Self::Jis_c6229_1984_Hand => "jis_c6229-1984-hand",
347 Self::Jis_c6229_1984_Hand_Add => "jis_c6229-1984-hand-add",
348 Self::Jis_c6229_1984_Kana => "jis_c6229-1984-kana",
349 Self::Iso_2033_1983 => "iso_2033-1983",
350 Self::Ansi_x3_110_1983 => "ansi_x3.110-1983",
351 Self::T_61_7bit => "t.61-7bit",
352 Self::T_61_8bit => "t.61-8bit",
353 Self::Ecma_Cyrillic => "ecma-cyrillic",
354 Self::Csa_z243_4_1985_1 => "csa_z243.4-1985-1",
355 Self::Csa_z243_4_1985_2 => "csa_z243.4-1985-2",
356 Self::Csa_z243_4_1985_Gr => "csa_z243.4-1985-gr",
357 Self::Iso_8859_6_E => "iso_8859-6-e",
358 Self::Iso_8859_6_I => "iso_8859-6-i",
359 Self::T_101_G2 => "t.101-g2",
360 Self::Iso_8859_8_E => "iso_8859-8-e",
361 Self::Iso_8859_8_I => "iso_8859-8-i",
362 Self::Csn_369103 => "csn_369103",
363 Self::Jus_i_B1_002 => "jus_i.b1.002",
364 Self::Iec_p27_1 => "iec_p27-1",
365 Self::Jus_i_B1_003_Serb => "jus_i.b1.003-serb",
366 Self::Jus_i_B1_003_Mac => "jus_i.b1.003-mac",
367 Self::Greek_Ccitt => "greek-ccitt",
368 Self::Nc_nc00_10_81 => "nc_nc00-10:81",
369 Self::Iso_6937_2_25 => "iso_6937-2-25",
370 Self::Gost_19768_74 => "gost_19768-74",
371 Self::Iso_8859_Supp => "iso_8859-supp",
372 Self::Iso_10367_Box => "iso_10367-box",
373 Self::Latin_Lap => "latin-lap",
374 Self::Jis_x0212_1990 => "jis_x0212-1990",
375 Self::Ds_2089 => "ds_2089",
376 Self::Us_Dk => "us-dk",
377 Self::Dk_Us => "dk-us",
378 Self::Ksc5636 => "ksc5636",
379 Self::Unicode_1_1_Utf_7 => "unicode-1-1-utf-7",
380 Self::Iso_2022_Cn => "iso-2022-cn",
381 Self::Iso_2022_Cn_Ext => "iso-2022-cn-ext",
382 Self::Utf_8 => "utf-8",
383 Self::Iso_8859_13 => "iso-8859-13",
384 Self::Iso_8859_14 => "iso-8859-14",
385 Self::Iso_8859_15 => "iso-8859-15",
386 Self::Iso_8859_16 => "iso-8859-16",
387 Self::Gbk => "gbk",
388 Self::Gb18030 => "gb18030",
389 Self::Osd_ebcdic_df04_15 => "osd_ebcdic_df04_15",
390 Self::Osd_ebcdic_df03_irv => "osd_ebcdic_df03_irv",
391 Self::Osd_ebcdic_df04_1 => "osd_ebcdic_df04_1",
392 Self::Iso_11548_1 => "iso-11548-1",
393 Self::Kz_1048 => "kz-1048",
394 Self::Iso_10646_Ucs_2 => "iso-10646-ucs-2",
395 Self::Iso_10646_Ucs_4 => "iso-10646-ucs-4",
396 Self::Iso_10646_Ucs_Basic => "iso-10646-ucs-basic",
397 Self::Iso_10646_Unicode_Latin1 => "iso-10646-unicode-latin1",
398 Self::Iso_10646_J_1 => "iso-10646-j-1",
399 Self::Iso_Unicode_Ibm_1261 => "iso-unicode-ibm-1261",
400 Self::Iso_Unicode_Ibm_1268 => "iso-unicode-ibm-1268",
401 Self::Iso_Unicode_Ibm_1276 => "iso-unicode-ibm-1276",
402 Self::Iso_Unicode_Ibm_1264 => "iso-unicode-ibm-1264",
403 Self::Iso_Unicode_Ibm_1265 => "iso-unicode-ibm-1265",
404 Self::Unicode_1_1 => "unicode-1-1",
405 Self::Scsu => "scsu",
406 Self::Utf_7 => "utf-7",
407 Self::Utf_16be => "utf-16be",
408 Self::Utf_16le => "utf-16le",
409 Self::Utf_16 => "utf-16",
410 Self::Cesu_8 => "cesu-8",
411 Self::Utf_32 => "utf-32",
412 Self::Utf_32be => "utf-32be",
413 Self::Utf_32le => "utf-32le",
414 Self::Bocu_1 => "bocu-1",
415 Self::Utf_7_Imap => "utf-7-imap",
416 Self::Iso_8859_1_Windows_3_0_Latin_1 => "iso-8859-1-windows-3.0-latin-1",
417 Self::Iso_8859_1_Windows_3_1_Latin_1 => "iso-8859-1-windows-3.1-latin-1",
418 Self::Iso_8859_2_Windows_Latin_2 => "iso-8859-2-windows-latin-2",
419 Self::Iso_8859_9_Windows_Latin_5 => "iso-8859-9-windows-latin-5",
420 Self::Hp_Roman8 => "hp-roman8",
421 Self::Adobe_Standard_Encoding => "adobe-standard-encoding",
422 Self::Ventura_Us => "ventura-us",
423 Self::Ventura_International => "ventura-international",
424 Self::Dec_Mcs => "dec-mcs",
425 Self::Ibm850 => "ibm850",
426 Self::Pc8_Danish_Norwegian => "pc8-danish-norwegian",
427 Self::Ibm862 => "ibm862",
428 Self::Pc8_Turkish => "pc8-turkish",
429 Self::Ibm_Symbols => "ibm-symbols",
430 Self::Ibm_Thai => "ibm-thai",
431 Self::Hp_Legal => "hp-legal",
432 Self::Hp_Pi_Font => "hp-pi-font",
433 Self::Hp_Math8 => "hp-math8",
434 Self::Adobe_Symbol_Encoding => "adobe-symbol-encoding",
435 Self::Hp_Desktop => "hp-desktop",
436 Self::Ventura_Math => "ventura-math",
437 Self::Microsoft_Publishing => "microsoft-publishing",
438 Self::Windows_31j => "windows-31j",
439 Self::Gb2312 => "gb2312",
440 Self::Big5 => "big5",
441 Self::Macintosh => "macintosh",
442 Self::Ibm037 => "ibm037",
443 Self::Ibm038 => "ibm038",
444 Self::Ibm273 => "ibm273",
445 Self::Ibm274 => "ibm274",
446 Self::Ibm275 => "ibm275",
447 Self::Ibm277 => "ibm277",
448 Self::Ibm278 => "ibm278",
449 Self::Ibm280 => "ibm280",
450 Self::Ibm281 => "ibm281",
451 Self::Ibm284 => "ibm284",
452 Self::Ibm285 => "ibm285",
453 Self::Ibm290 => "ibm290",
454 Self::Ibm297 => "ibm297",
455 Self::Ibm420 => "ibm420",
456 Self::Ibm423 => "ibm423",
457 Self::Ibm424 => "ibm424",
458 Self::Ibm437 => "ibm437",
459 Self::Ibm500 => "ibm500",
460 Self::Ibm851 => "ibm851",
461 Self::Ibm852 => "ibm852",
462 Self::Ibm855 => "ibm855",
463 Self::Ibm857 => "ibm857",
464 Self::Ibm860 => "ibm860",
465 Self::Ibm861 => "ibm861",
466 Self::Ibm863 => "ibm863",
467 Self::Ibm864 => "ibm864",
468 Self::Ibm865 => "ibm865",
469 Self::Ibm868 => "ibm868",
470 Self::Ibm869 => "ibm869",
471 Self::Ibm870 => "ibm870",
472 Self::Ibm871 => "ibm871",
473 Self::Ibm880 => "ibm880",
474 Self::Ibm891 => "ibm891",
475 Self::Ibm903 => "ibm903",
476 Self::Ibm904 => "ibm904",
477 Self::Ibm905 => "ibm905",
478 Self::Ibm918 => "ibm918",
479 Self::Ibm1026 => "ibm1026",
480 Self::Ebcdic_At_De => "ebcdic-at-de",
481 Self::Ebcdic_At_De_A => "ebcdic-at-de-a",
482 Self::Ebcdic_Ca_Fr => "ebcdic-ca-fr",
483 Self::Ebcdic_Dk_No => "ebcdic-dk-no",
484 Self::Ebcdic_Dk_No_A => "ebcdic-dk-no-a",
485 Self::Ebcdic_Fi_Se => "ebcdic-fi-se",
486 Self::Ebcdic_Fi_Se_A => "ebcdic-fi-se-a",
487 Self::Ebcdic_Fr => "ebcdic-fr",
488 Self::Ebcdic_It => "ebcdic-it",
489 Self::Ebcdic_Pt => "ebcdic-pt",
490 Self::Ebcdic_Es => "ebcdic-es",
491 Self::Ebcdic_Es_A => "ebcdic-es-a",
492 Self::Ebcdic_Es_S => "ebcdic-es-s",
493 Self::Ebcdic_Uk => "ebcdic-uk",
494 Self::Ebcdic_Us => "ebcdic-us",
495 Self::Unknown_8bit => "unknown-8bit",
496 Self::Mnemonic => "mnemonic",
497 Self::Mnem => "mnem",
498 Self::Viscii => "viscii",
499 Self::Viqr => "viqr",
500 Self::Koi8_R => "koi8-r",
501 Self::Hz_Gb_2312 => "hz-gb-2312",
502 Self::Ibm866 => "ibm866",
503 Self::Ibm775 => "ibm775",
504 Self::Koi8_U => "koi8-u",
505 Self::Ibm00858 => "ibm00858",
506 Self::Ibm00924 => "ibm00924",
507 Self::Ibm01140 => "ibm01140",
508 Self::Ibm01141 => "ibm01141",
509 Self::Ibm01142 => "ibm01142",
510 Self::Ibm01143 => "ibm01143",
511 Self::Ibm01144 => "ibm01144",
512 Self::Ibm01145 => "ibm01145",
513 Self::Ibm01146 => "ibm01146",
514 Self::Ibm01147 => "ibm01147",
515 Self::Ibm01148 => "ibm01148",
516 Self::Ibm01149 => "ibm01149",
517 Self::Big5_Hkscs => "big5-hkscs",
518 Self::Ibm1047 => "ibm1047",
519 Self::Ptcp154 => "ptcp154",
520 Self::Amiga_1251 => "amiga-1251",
521 Self::Koi7_Switched => "koi7-switched",
522 Self::Brf => "brf",
523 Self::Tscii => "tscii",
524 Self::Cp51932 => "cp51932",
525 Self::Windows_874 => "windows-874",
526 Self::Windows_1250 => "windows-1250",
527 Self::Windows_1251 => "windows-1251",
528 Self::Windows_1252 => "windows-1252",
529 Self::Windows_1253 => "windows-1253",
530 Self::Windows_1254 => "windows-1254",
531 Self::Windows_1255 => "windows-1255",
532 Self::Windows_1256 => "windows-1256",
533 Self::Windows_1257 => "windows-1257",
534 Self::Windows_1258 => "windows-1258",
535 Self::Tis_620 => "tis-620",
536 Self::Cp50220 => "cp50220",
537 })
538 }
539}
540
541impl FromStr for Charset {
542 type Err = Error<ErrTag>;
543
544 fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
545 Ok(match s {
546 "us-ascii" => Self::Us_Ascii,
547 "iso_8859-1:1987" => Self::Iso8859_1_1987,
548 "iso_8859-2:1987" => Self::Iso8859_2_1987,
549 "iso_8859-3:1988" => Self::Iso8859_3_1988,
550 "iso_8859-4:1988" => Self::Iso8859_4_1988,
551 "iso_8859-5:1988" => Self::Iso8859_5_1988,
552 "iso_8859-6:1987" => Self::Iso8859_6_1987,
553 "iso_8859-7:1987" => Self::Iso8859_7_1987,
554 "iso_8859-8:1988" => Self::Iso8859_8_1988,
555 "iso_8859-9:1989" => Self::Iso8859_9_1989,
556 "iso-8859-10" => Self::Iso8859_10,
557 "iso_6937-2-add" => Self::Iso6937_2_Add,
558 "jis_x0201" => Self::Jis_x0201,
559 "jis_encoding" => Self::Jis_encoding,
560 "shift_jis" => Self::Shift_jis,
561 "extended_unix_code_packed_format_for_japanese" => Self::Extended_unix_code_packed_format_for_japanese,
562 "extended_unix_code_fixed_width_for_japanese" => Self::Extended_unix_code_fixed_width_for_japanese,
563 "bs_4730" => Self::Bs_4730,
564 "sen_850200_c" => Self::Sen_850200_c,
565 "it" => Self::It,
566 "es" => Self::Es,
567 "din_66003" => Self::Din_66003,
568 "ns_4551-1" => Self::Ns_4551_1,
569 "nf_z_62-010" => Self::Nf_z_62_010,
570 "iso-10646-utf-1" => Self::Iso_10646_Utf_1,
571 "iso_646.basic:1983" => Self::Iso_646_Basic_1983,
572 "invariant" => Self::Invariant,
573 "iso_646.irv:1983" => Self::Iso_646_Irv_1983,
574 "nats-sefi" => Self::Nats_Sefi,
575 "nats-sefi-add" => Self::Nats_Sefi_Add,
576 "nats-dano" => Self::Nats_Dano,
577 "nats-dano-add" => Self::Nats_Dano_Add,
578 "sen_850200_b" => Self::Sen_850200_b,
579 "ks_c_5601-1987" => Self::Ks_c_5601_1987,
580 "iso-2022-kr" => Self::Iso_2022_Kr,
581 "euc-kr" => Self::Euc_Kr,
582 "iso-2022-jp" => Self::Iso_2022_Jp,
583 "iso-2022-jp-2" => Self::Iso_2022_Jp_2,
584 "jis_c6220-1969-jp" => Self::Jis_c6220_1969_Jp,
585 "jis_c6220-1969-ro" => Self::Jis_c6220_1969_Ro,
586 "pt" => Self::Pt,
587 "greek7-old" => Self::Greek7_Old,
588 "latin-greek" => Self::Latin_Greek,
589 "nf_z_62-010_(1973)" => Self::Nf_z_62_010_1973,
590 "latin-greek-1" => Self::Latin_Greek_1,
591 "iso_5427" => Self::Iso_5427,
592 "jis_c6226-1978" => Self::Jis_c6226_1978,
593 "bs_viewdata" => Self::Bs_viewdata,
594 "inis" => Self::Inis,
595 "inis-8" => Self::Inis_8,
596 "inis-cyrillic" => Self::Inis_Cyrillic,
597 "iso_5427:1981" => Self::Iso_5427_1981,
598 "iso_5428:1980" => Self::Iso_5428_1980,
599 "gb_1988-80" => Self::Gb_1988_80,
600 "gb_2312-80" => Self::Gb_2312_80,
601 "ns_4551-2" => Self::Ns_4551_2,
602 "videotex-suppl" => Self::Videotex_Suppl,
603 "pt2" => Self::Pt2,
604 "es2" => Self::Es2,
605 "msz_7795.3" => Self::Msz_7795_3,
606 "jis_c6226-1983" => Self::Jis_c6226_1983,
607 "greek7" => Self::Greek7,
608 "asmo_449" => Self::Asmo_449,
609 "iso-ir-90" => Self::Iso_Ir_90,
610 "jis_c6229-1984-a" => Self::Jis_c6229_1984_A,
611 "jis_c6229-1984-b" => Self::Jis_c6229_1984_B,
612 "jis_c6229-1984-b-add" => Self::Jis_c6229_1984_B_Add,
613 "jis_c6229-1984-hand" => Self::Jis_c6229_1984_Hand,
614 "jis_c6229-1984-hand-add" => Self::Jis_c6229_1984_Hand_Add,
615 "jis_c6229-1984-kana" => Self::Jis_c6229_1984_Kana,
616 "iso_2033-1983" => Self::Iso_2033_1983,
617 "ansi_x3.110-1983" => Self::Ansi_x3_110_1983,
618 "t.61-7bit" => Self::T_61_7bit,
619 "t.61-8bit" => Self::T_61_8bit,
620 "ecma-cyrillic" => Self::Ecma_Cyrillic,
621 "csa_z243.4-1985-1" => Self::Csa_z243_4_1985_1,
622 "csa_z243.4-1985-2" => Self::Csa_z243_4_1985_2,
623 "csa_z243.4-1985-gr" => Self::Csa_z243_4_1985_Gr,
624 "iso_8859-6-e" => Self::Iso_8859_6_E,
625 "iso_8859-6-i" => Self::Iso_8859_6_I,
626 "t.101-g2" => Self::T_101_G2,
627 "iso_8859-8-e" => Self::Iso_8859_8_E,
628 "iso_8859-8-i" => Self::Iso_8859_8_I,
629 "csn_369103" => Self::Csn_369103,
630 "jus_i.b1.002" => Self::Jus_i_B1_002,
631 "iec_p27-1" => Self::Iec_p27_1,
632 "jus_i.b1.003-serb" => Self::Jus_i_B1_003_Serb,
633 "jus_i.b1.003-mac" => Self::Jus_i_B1_003_Mac,
634 "greek-ccitt" => Self::Greek_Ccitt,
635 "nc_nc00-10:81" => Self::Nc_nc00_10_81,
636 "iso_6937-2-25" => Self::Iso_6937_2_25,
637 "gost_19768-74" => Self::Gost_19768_74,
638 "iso_8859-supp" => Self::Iso_8859_Supp,
639 "iso_10367-box" => Self::Iso_10367_Box,
640 "latin-lap" => Self::Latin_Lap,
641 "jis_x0212-1990" => Self::Jis_x0212_1990,
642 "ds_2089" => Self::Ds_2089,
643 "us-dk" => Self::Us_Dk,
644 "dk-us" => Self::Dk_Us,
645 "ksc5636" => Self::Ksc5636,
646 "unicode-1-1-utf-7" => Self::Unicode_1_1_Utf_7,
647 "iso-2022-cn" => Self::Iso_2022_Cn,
648 "iso-2022-cn-ext" => Self::Iso_2022_Cn_Ext,
649 "utf-8" => Self::Utf_8,
650 "iso-8859-13" => Self::Iso_8859_13,
651 "iso-8859-14" => Self::Iso_8859_14,
652 "iso-8859-15" => Self::Iso_8859_15,
653 "iso-8859-16" => Self::Iso_8859_16,
654 "gbk" => Self::Gbk,
655 "gb18030" => Self::Gb18030,
656 "osd_ebcdic_df04_15" => Self::Osd_ebcdic_df04_15,
657 "osd_ebcdic_df03_irv" => Self::Osd_ebcdic_df03_irv,
658 "osd_ebcdic_df04_1" => Self::Osd_ebcdic_df04_1,
659 "iso-11548-1" => Self::Iso_11548_1,
660 "kz-1048" => Self::Kz_1048,
661 "iso-10646-ucs-2" => Self::Iso_10646_Ucs_2,
662 "iso-10646-ucs-4" => Self::Iso_10646_Ucs_4,
663 "iso-10646-ucs-basic" => Self::Iso_10646_Ucs_Basic,
664 "iso-10646-unicode-latin1" => Self::Iso_10646_Unicode_Latin1,
665 "iso-10646-j-1" => Self::Iso_10646_J_1,
666 "iso-unicode-ibm-1261" => Self::Iso_Unicode_Ibm_1261,
667 "iso-unicode-ibm-1268" => Self::Iso_Unicode_Ibm_1268,
668 "iso-unicode-ibm-1276" => Self::Iso_Unicode_Ibm_1276,
669 "iso-unicode-ibm-1264" => Self::Iso_Unicode_Ibm_1264,
670 "iso-unicode-ibm-1265" => Self::Iso_Unicode_Ibm_1265,
671 "unicode-1-1" => Self::Unicode_1_1,
672 "scsu" => Self::Scsu,
673 "utf-7" => Self::Utf_7,
674 "utf-16be" => Self::Utf_16be,
675 "utf-16le" => Self::Utf_16le,
676 "utf-16" => Self::Utf_16,
677 "cesu-8" => Self::Cesu_8,
678 "utf-32" => Self::Utf_32,
679 "utf-32be" => Self::Utf_32be,
680 "utf-32le" => Self::Utf_32le,
681 "bocu-1" => Self::Bocu_1,
682 "utf-7-imap" => Self::Utf_7_Imap,
683 "iso-8859-1-windows-3.0-latin-1" => Self::Iso_8859_1_Windows_3_0_Latin_1,
684 "iso-8859-1-windows-3.1-latin-1" => Self::Iso_8859_1_Windows_3_1_Latin_1,
685 "iso-8859-2-windows-latin-2" => Self::Iso_8859_2_Windows_Latin_2,
686 "iso-8859-9-windows-latin-5" => Self::Iso_8859_9_Windows_Latin_5,
687 "hp-roman8" => Self::Hp_Roman8,
688 "adobe-standard-encoding" => Self::Adobe_Standard_Encoding,
689 "ventura-us" => Self::Ventura_Us,
690 "ventura-international" => Self::Ventura_International,
691 "dec-mcs" => Self::Dec_Mcs,
692 "ibm850" => Self::Ibm850,
693 "pc8-danish-norwegian" => Self::Pc8_Danish_Norwegian,
694 "ibm862" => Self::Ibm862,
695 "pc8-turkish" => Self::Pc8_Turkish,
696 "ibm-symbols" => Self::Ibm_Symbols,
697 "ibm-thai" => Self::Ibm_Thai,
698 "hp-legal" => Self::Hp_Legal,
699 "hp-pi-font" => Self::Hp_Pi_Font,
700 "hp-math8" => Self::Hp_Math8,
701 "adobe-symbol-encoding" => Self::Adobe_Symbol_Encoding,
702 "hp-desktop" => Self::Hp_Desktop,
703 "ventura-math" => Self::Ventura_Math,
704 "microsoft-publishing" => Self::Microsoft_Publishing,
705 "windows-31j" => Self::Windows_31j,
706 "gb2312" => Self::Gb2312,
707 "big5" => Self::Big5,
708 "macintosh" => Self::Macintosh,
709 "ibm037" => Self::Ibm037,
710 "ibm038" => Self::Ibm038,
711 "ibm273" => Self::Ibm273,
712 "ibm274" => Self::Ibm274,
713 "ibm275" => Self::Ibm275,
714 "ibm277" => Self::Ibm277,
715 "ibm278" => Self::Ibm278,
716 "ibm280" => Self::Ibm280,
717 "ibm281" => Self::Ibm281,
718 "ibm284" => Self::Ibm284,
719 "ibm285" => Self::Ibm285,
720 "ibm290" => Self::Ibm290,
721 "ibm297" => Self::Ibm297,
722 "ibm420" => Self::Ibm420,
723 "ibm423" => Self::Ibm423,
724 "ibm424" => Self::Ibm424,
725 "ibm437" => Self::Ibm437,
726 "ibm500" => Self::Ibm500,
727 "ibm851" => Self::Ibm851,
728 "ibm852" => Self::Ibm852,
729 "ibm855" => Self::Ibm855,
730 "ibm857" => Self::Ibm857,
731 "ibm860" => Self::Ibm860,
732 "ibm861" => Self::Ibm861,
733 "ibm863" => Self::Ibm863,
734 "ibm864" => Self::Ibm864,
735 "ibm865" => Self::Ibm865,
736 "ibm868" => Self::Ibm868,
737 "ibm869" => Self::Ibm869,
738 "ibm870" => Self::Ibm870,
739 "ibm871" => Self::Ibm871,
740 "ibm880" => Self::Ibm880,
741 "ibm891" => Self::Ibm891,
742 "ibm903" => Self::Ibm903,
743 "ibm904" => Self::Ibm904,
744 "ibm905" => Self::Ibm905,
745 "ibm918" => Self::Ibm918,
746 "ibm1026" => Self::Ibm1026,
747 "ebcdic-at-de" => Self::Ebcdic_At_De,
748 "ebcdic-at-de-a" => Self::Ebcdic_At_De_A,
749 "ebcdic-ca-fr" => Self::Ebcdic_Ca_Fr,
750 "ebcdic-dk-no" => Self::Ebcdic_Dk_No,
751 "ebcdic-dk-no-a" => Self::Ebcdic_Dk_No_A,
752 "ebcdic-fi-se" => Self::Ebcdic_Fi_Se,
753 "ebcdic-fi-se-a" => Self::Ebcdic_Fi_Se_A,
754 "ebcdic-fr" => Self::Ebcdic_Fr,
755 "ebcdic-it" => Self::Ebcdic_It,
756 "ebcdic-pt" => Self::Ebcdic_Pt,
757 "ebcdic-es" => Self::Ebcdic_Es,
758 "ebcdic-es-a" => Self::Ebcdic_Es_A,
759 "ebcdic-es-s" => Self::Ebcdic_Es_S,
760 "ebcdic-uk" => Self::Ebcdic_Uk,
761 "ebcdic-us" => Self::Ebcdic_Us,
762 "unknown-8bit" => Self::Unknown_8bit,
763 "mnemonic" => Self::Mnemonic,
764 "mnem" => Self::Mnem,
765 "viscii" => Self::Viscii,
766 "viqr" => Self::Viqr,
767 "koi8-r" => Self::Koi8_R,
768 "hz-gb-2312" => Self::Hz_Gb_2312,
769 "ibm866" => Self::Ibm866,
770 "ibm775" => Self::Ibm775,
771 "koi8-u" => Self::Koi8_U,
772 "ibm00858" => Self::Ibm00858,
773 "ibm00924" => Self::Ibm00924,
774 "ibm01140" => Self::Ibm01140,
775 "ibm01141" => Self::Ibm01141,
776 "ibm01142" => Self::Ibm01142,
777 "ibm01143" => Self::Ibm01143,
778 "ibm01144" => Self::Ibm01144,
779 "ibm01145" => Self::Ibm01145,
780 "ibm01146" => Self::Ibm01146,
781 "ibm01147" => Self::Ibm01147,
782 "ibm01148" => Self::Ibm01148,
783 "ibm01149" => Self::Ibm01149,
784 "big5-hkscs" => Self::Big5_Hkscs,
785 "ibm1047" => Self::Ibm1047,
786 "ptcp154" => Self::Ptcp154,
787 "amiga-1251" => Self::Amiga_1251,
788 "koi7-switched" => Self::Koi7_Switched,
789 "brf" => Self::Brf,
790 "tscii" => Self::Tscii,
791 "cp51932" => Self::Cp51932,
792 "windows-874" => Self::Windows_874,
793 "windows-1250" => Self::Windows_1250,
794 "windows-1251" => Self::Windows_1251,
795 "windows-1252" => Self::Windows_1252,
796 "windows-1253" => Self::Windows_1253,
797 "windows-1254" => Self::Windows_1254,
798 "windows-1255" => Self::Windows_1255,
799 "windows-1256" => Self::Windows_1256,
800 "windows-1257" => Self::Windows_1257,
801 "windows-1258" => Self::Windows_1258,
802 "tis-620" => Self::Tis_620,
803 "cp50220" => Self::Cp50220,
804 _ => return Err(err!(
805 "Unrecognised charset '{}'.", s;
806 IO, Network, Unknown, Input)),
807 })
808 }
809}