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
| 1 | use oxedyne_fe2o3_core::prelude::*; |
| 2 | |
| 3 | use 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)] |
| 15 | pub 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 | |
| 276 | impl 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 | |
| 541 | impl 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 | } |