1use crate::Encoding;
13#[cfg(feature = "single-byte")]
14use crate::tables::single_byte as sb;
15use crate::variant::VariantEncoding;
16
17pub(crate) const UTF_8_INIT: Encoding = Encoding::new("UTF-8", VariantEncoding::Utf8);
20pub static UTF_8: &Encoding = &UTF_8_INIT;
22
23#[cfg(feature = "single-byte")]
26pub(crate) const IBM866_INIT: Encoding = Encoding::new(
27 "IBM866",
28 VariantEncoding::SingleByte(
29 &sb::IBM866_DECODE,
30 &sb::IBM866_ENCODE_CODE_POINTS,
31 &sb::IBM866_ENCODE_BYTES,
32 ),
33);
34#[cfg(feature = "single-byte")]
36pub static IBM866: &Encoding = &IBM866_INIT;
37
38#[cfg(feature = "single-byte")]
39pub(crate) const ISO_8859_2_INIT: Encoding = Encoding::new(
40 "ISO-8859-2",
41 VariantEncoding::SingleByte(
42 &sb::ISO_8859_2_DECODE,
43 &sb::ISO_8859_2_ENCODE_CODE_POINTS,
44 &sb::ISO_8859_2_ENCODE_BYTES,
45 ),
46);
47#[cfg(feature = "single-byte")]
49pub static ISO_8859_2: &Encoding = &ISO_8859_2_INIT;
50
51#[cfg(feature = "single-byte")]
52pub(crate) const ISO_8859_3_INIT: Encoding = Encoding::new(
53 "ISO-8859-3",
54 VariantEncoding::SingleByte(
55 &sb::ISO_8859_3_DECODE,
56 &sb::ISO_8859_3_ENCODE_CODE_POINTS,
57 &sb::ISO_8859_3_ENCODE_BYTES,
58 ),
59);
60#[cfg(feature = "single-byte")]
62pub static ISO_8859_3: &Encoding = &ISO_8859_3_INIT;
63
64#[cfg(feature = "single-byte")]
65pub(crate) const ISO_8859_4_INIT: Encoding = Encoding::new(
66 "ISO-8859-4",
67 VariantEncoding::SingleByte(
68 &sb::ISO_8859_4_DECODE,
69 &sb::ISO_8859_4_ENCODE_CODE_POINTS,
70 &sb::ISO_8859_4_ENCODE_BYTES,
71 ),
72);
73#[cfg(feature = "single-byte")]
75pub static ISO_8859_4: &Encoding = &ISO_8859_4_INIT;
76
77#[cfg(feature = "single-byte")]
78pub(crate) const ISO_8859_5_INIT: Encoding = Encoding::new(
79 "ISO-8859-5",
80 VariantEncoding::SingleByte(
81 &sb::ISO_8859_5_DECODE,
82 &sb::ISO_8859_5_ENCODE_CODE_POINTS,
83 &sb::ISO_8859_5_ENCODE_BYTES,
84 ),
85);
86#[cfg(feature = "single-byte")]
88pub static ISO_8859_5: &Encoding = &ISO_8859_5_INIT;
89
90#[cfg(feature = "single-byte")]
91pub(crate) const ISO_8859_6_INIT: Encoding = Encoding::new(
92 "ISO-8859-6",
93 VariantEncoding::SingleByte(
94 &sb::ISO_8859_6_DECODE,
95 &sb::ISO_8859_6_ENCODE_CODE_POINTS,
96 &sb::ISO_8859_6_ENCODE_BYTES,
97 ),
98);
99#[cfg(feature = "single-byte")]
101pub static ISO_8859_6: &Encoding = &ISO_8859_6_INIT;
102
103#[cfg(feature = "single-byte")]
104pub(crate) const ISO_8859_7_INIT: Encoding = Encoding::new(
105 "ISO-8859-7",
106 VariantEncoding::SingleByte(
107 &sb::ISO_8859_7_DECODE,
108 &sb::ISO_8859_7_ENCODE_CODE_POINTS,
109 &sb::ISO_8859_7_ENCODE_BYTES,
110 ),
111);
112#[cfg(feature = "single-byte")]
114pub static ISO_8859_7: &Encoding = &ISO_8859_7_INIT;
115
116#[cfg(feature = "single-byte")]
117pub(crate) const ISO_8859_8_INIT: Encoding = Encoding::new(
118 "ISO-8859-8",
119 VariantEncoding::SingleByte(
120 &sb::ISO_8859_8_DECODE,
121 &sb::ISO_8859_8_ENCODE_CODE_POINTS,
122 &sb::ISO_8859_8_ENCODE_BYTES,
123 ),
124);
125#[cfg(feature = "single-byte")]
127pub static ISO_8859_8: &Encoding = &ISO_8859_8_INIT;
128
129#[cfg(feature = "single-byte")]
130pub(crate) const ISO_8859_8_I_INIT: Encoding = Encoding::new(
131 "ISO-8859-8-I",
132 VariantEncoding::SingleByte(
133 &sb::ISO_8859_8_DECODE,
134 &sb::ISO_8859_8_ENCODE_CODE_POINTS,
135 &sb::ISO_8859_8_ENCODE_BYTES,
136 ),
137);
138#[cfg(feature = "single-byte")]
140pub static ISO_8859_8_I: &Encoding = &ISO_8859_8_I_INIT;
141
142#[cfg(feature = "single-byte")]
143pub(crate) const ISO_8859_10_INIT: Encoding = Encoding::new(
144 "ISO-8859-10",
145 VariantEncoding::SingleByte(
146 &sb::ISO_8859_10_DECODE,
147 &sb::ISO_8859_10_ENCODE_CODE_POINTS,
148 &sb::ISO_8859_10_ENCODE_BYTES,
149 ),
150);
151#[cfg(feature = "single-byte")]
153pub static ISO_8859_10: &Encoding = &ISO_8859_10_INIT;
154
155#[cfg(feature = "single-byte")]
156pub(crate) const ISO_8859_13_INIT: Encoding = Encoding::new(
157 "ISO-8859-13",
158 VariantEncoding::SingleByte(
159 &sb::ISO_8859_13_DECODE,
160 &sb::ISO_8859_13_ENCODE_CODE_POINTS,
161 &sb::ISO_8859_13_ENCODE_BYTES,
162 ),
163);
164#[cfg(feature = "single-byte")]
166pub static ISO_8859_13: &Encoding = &ISO_8859_13_INIT;
167
168#[cfg(feature = "single-byte")]
169pub(crate) const ISO_8859_14_INIT: Encoding = Encoding::new(
170 "ISO-8859-14",
171 VariantEncoding::SingleByte(
172 &sb::ISO_8859_14_DECODE,
173 &sb::ISO_8859_14_ENCODE_CODE_POINTS,
174 &sb::ISO_8859_14_ENCODE_BYTES,
175 ),
176);
177#[cfg(feature = "single-byte")]
179pub static ISO_8859_14: &Encoding = &ISO_8859_14_INIT;
180
181#[cfg(feature = "single-byte")]
182pub(crate) const ISO_8859_15_INIT: Encoding = Encoding::new(
183 "ISO-8859-15",
184 VariantEncoding::SingleByte(
185 &sb::ISO_8859_15_DECODE,
186 &sb::ISO_8859_15_ENCODE_CODE_POINTS,
187 &sb::ISO_8859_15_ENCODE_BYTES,
188 ),
189);
190#[cfg(feature = "single-byte")]
192pub static ISO_8859_15: &Encoding = &ISO_8859_15_INIT;
193
194#[cfg(feature = "single-byte")]
195pub(crate) const ISO_8859_16_INIT: Encoding = Encoding::new(
196 "ISO-8859-16",
197 VariantEncoding::SingleByte(
198 &sb::ISO_8859_16_DECODE,
199 &sb::ISO_8859_16_ENCODE_CODE_POINTS,
200 &sb::ISO_8859_16_ENCODE_BYTES,
201 ),
202);
203#[cfg(feature = "single-byte")]
205pub static ISO_8859_16: &Encoding = &ISO_8859_16_INIT;
206
207#[cfg(feature = "single-byte")]
208pub(crate) const KOI8_R_INIT: Encoding = Encoding::new(
209 "KOI8-R",
210 VariantEncoding::SingleByte(
211 &sb::KOI8_R_DECODE,
212 &sb::KOI8_R_ENCODE_CODE_POINTS,
213 &sb::KOI8_R_ENCODE_BYTES,
214 ),
215);
216#[cfg(feature = "single-byte")]
218pub static KOI8_R: &Encoding = &KOI8_R_INIT;
219
220#[cfg(feature = "single-byte")]
221pub(crate) const KOI8_U_INIT: Encoding = Encoding::new(
222 "KOI8-U",
223 VariantEncoding::SingleByte(
224 &sb::KOI8_U_DECODE,
225 &sb::KOI8_U_ENCODE_CODE_POINTS,
226 &sb::KOI8_U_ENCODE_BYTES,
227 ),
228);
229#[cfg(feature = "single-byte")]
231pub static KOI8_U: &Encoding = &KOI8_U_INIT;
232
233#[cfg(feature = "single-byte")]
234pub(crate) const MACINTOSH_INIT: Encoding = Encoding::new(
235 "macintosh",
236 VariantEncoding::SingleByte(
237 &sb::MACINTOSH_DECODE,
238 &sb::MACINTOSH_ENCODE_CODE_POINTS,
239 &sb::MACINTOSH_ENCODE_BYTES,
240 ),
241);
242#[cfg(feature = "single-byte")]
244pub static MACINTOSH: &Encoding = &MACINTOSH_INIT;
245
246#[cfg(feature = "single-byte")]
247pub(crate) const WINDOWS_874_INIT: Encoding = Encoding::new(
248 "windows-874",
249 VariantEncoding::SingleByte(
250 &sb::WINDOWS_874_DECODE,
251 &sb::WINDOWS_874_ENCODE_CODE_POINTS,
252 &sb::WINDOWS_874_ENCODE_BYTES,
253 ),
254);
255#[cfg(feature = "single-byte")]
257pub static WINDOWS_874: &Encoding = &WINDOWS_874_INIT;
258
259#[cfg(feature = "single-byte")]
260pub(crate) const WINDOWS_1250_INIT: Encoding = Encoding::new(
261 "windows-1250",
262 VariantEncoding::SingleByte(
263 &sb::WINDOWS_1250_DECODE,
264 &sb::WINDOWS_1250_ENCODE_CODE_POINTS,
265 &sb::WINDOWS_1250_ENCODE_BYTES,
266 ),
267);
268#[cfg(feature = "single-byte")]
270pub static WINDOWS_1250: &Encoding = &WINDOWS_1250_INIT;
271
272#[cfg(feature = "single-byte")]
273pub(crate) const WINDOWS_1251_INIT: Encoding = Encoding::new(
274 "windows-1251",
275 VariantEncoding::SingleByte(
276 &sb::WINDOWS_1251_DECODE,
277 &sb::WINDOWS_1251_ENCODE_CODE_POINTS,
278 &sb::WINDOWS_1251_ENCODE_BYTES,
279 ),
280);
281#[cfg(feature = "single-byte")]
283pub static WINDOWS_1251: &Encoding = &WINDOWS_1251_INIT;
284
285#[cfg(feature = "single-byte")]
286pub(crate) const WINDOWS_1252_INIT: Encoding = Encoding::new(
287 "windows-1252",
288 VariantEncoding::SingleByte(
289 &sb::WINDOWS_1252_DECODE,
290 &sb::WINDOWS_1252_ENCODE_CODE_POINTS,
291 &sb::WINDOWS_1252_ENCODE_BYTES,
292 ),
293);
294#[cfg(feature = "single-byte")]
296pub static WINDOWS_1252: &Encoding = &WINDOWS_1252_INIT;
297
298#[cfg(feature = "single-byte")]
299pub(crate) const WINDOWS_1253_INIT: Encoding = Encoding::new(
300 "windows-1253",
301 VariantEncoding::SingleByte(
302 &sb::WINDOWS_1253_DECODE,
303 &sb::WINDOWS_1253_ENCODE_CODE_POINTS,
304 &sb::WINDOWS_1253_ENCODE_BYTES,
305 ),
306);
307#[cfg(feature = "single-byte")]
309pub static WINDOWS_1253: &Encoding = &WINDOWS_1253_INIT;
310
311#[cfg(feature = "single-byte")]
312pub(crate) const WINDOWS_1254_INIT: Encoding = Encoding::new(
313 "windows-1254",
314 VariantEncoding::SingleByte(
315 &sb::WINDOWS_1254_DECODE,
316 &sb::WINDOWS_1254_ENCODE_CODE_POINTS,
317 &sb::WINDOWS_1254_ENCODE_BYTES,
318 ),
319);
320#[cfg(feature = "single-byte")]
322pub static WINDOWS_1254: &Encoding = &WINDOWS_1254_INIT;
323
324#[cfg(feature = "single-byte")]
325pub(crate) const WINDOWS_1255_INIT: Encoding = Encoding::new(
326 "windows-1255",
327 VariantEncoding::SingleByte(
328 &sb::WINDOWS_1255_DECODE,
329 &sb::WINDOWS_1255_ENCODE_CODE_POINTS,
330 &sb::WINDOWS_1255_ENCODE_BYTES,
331 ),
332);
333#[cfg(feature = "single-byte")]
335pub static WINDOWS_1255: &Encoding = &WINDOWS_1255_INIT;
336
337#[cfg(feature = "single-byte")]
338pub(crate) const WINDOWS_1256_INIT: Encoding = Encoding::new(
339 "windows-1256",
340 VariantEncoding::SingleByte(
341 &sb::WINDOWS_1256_DECODE,
342 &sb::WINDOWS_1256_ENCODE_CODE_POINTS,
343 &sb::WINDOWS_1256_ENCODE_BYTES,
344 ),
345);
346#[cfg(feature = "single-byte")]
348pub static WINDOWS_1256: &Encoding = &WINDOWS_1256_INIT;
349
350#[cfg(feature = "single-byte")]
351pub(crate) const WINDOWS_1257_INIT: Encoding = Encoding::new(
352 "windows-1257",
353 VariantEncoding::SingleByte(
354 &sb::WINDOWS_1257_DECODE,
355 &sb::WINDOWS_1257_ENCODE_CODE_POINTS,
356 &sb::WINDOWS_1257_ENCODE_BYTES,
357 ),
358);
359#[cfg(feature = "single-byte")]
361pub static WINDOWS_1257: &Encoding = &WINDOWS_1257_INIT;
362
363#[cfg(feature = "single-byte")]
364pub(crate) const WINDOWS_1258_INIT: Encoding = Encoding::new(
365 "windows-1258",
366 VariantEncoding::SingleByte(
367 &sb::WINDOWS_1258_DECODE,
368 &sb::WINDOWS_1258_ENCODE_CODE_POINTS,
369 &sb::WINDOWS_1258_ENCODE_BYTES,
370 ),
371);
372#[cfg(feature = "single-byte")]
374pub static WINDOWS_1258: &Encoding = &WINDOWS_1258_INIT;
375
376#[cfg(feature = "single-byte")]
377pub(crate) const X_MAC_CYRILLIC_INIT: Encoding = Encoding::new(
378 "x-mac-cyrillic",
379 VariantEncoding::SingleByte(
380 &sb::X_MAC_CYRILLIC_DECODE,
381 &sb::X_MAC_CYRILLIC_ENCODE_CODE_POINTS,
382 &sb::X_MAC_CYRILLIC_ENCODE_BYTES,
383 ),
384);
385#[cfg(feature = "single-byte")]
387pub static X_MAC_CYRILLIC: &Encoding = &X_MAC_CYRILLIC_INIT;
388
389#[cfg(feature = "gb18030")]
392pub(crate) const GBK_INIT: Encoding =
393 Encoding::new("GBK", VariantEncoding::Gb18030 { is_gbk: true });
394#[cfg(feature = "gb18030")]
396pub static GBK: &Encoding = &GBK_INIT;
397
398#[cfg(feature = "gb18030")]
399pub(crate) const GB18030_INIT: Encoding =
400 Encoding::new("gb18030", VariantEncoding::Gb18030 { is_gbk: false });
401#[cfg(feature = "gb18030")]
403pub static GB18030: &Encoding = &GB18030_INIT;
404
405#[cfg(feature = "big5")]
408pub(crate) const BIG5_HKSCS_INIT: Encoding = Encoding::new("Big5-HKSCS", VariantEncoding::Big5);
409#[cfg(feature = "big5")]
411pub static BIG5_HKSCS: &Encoding = &BIG5_HKSCS_INIT;
412
413#[cfg(feature = "euc-jp")]
416pub(crate) const X_WHATWG_EUC_JP_INIT: Encoding =
417 Encoding::new("x-whatwg-euc-jp", VariantEncoding::EucJp);
418#[cfg(feature = "euc-jp")]
420pub static X_WHATWG_EUC_JP: &Encoding = &X_WHATWG_EUC_JP_INIT;
421
422#[cfg(feature = "iso-2022-jp")]
423pub(crate) const X_WHATWG_ISO_2022_JP_INIT: Encoding =
424 Encoding::new("x-whatwg-iso-2022-jp", VariantEncoding::Iso2022Jp);
425#[cfg(feature = "iso-2022-jp")]
427pub static X_WHATWG_ISO_2022_JP: &Encoding = &X_WHATWG_ISO_2022_JP_INIT;
428
429#[cfg(feature = "shift-jis")]
430pub(crate) const WINDOWS_31J_INIT: Encoding =
431 Encoding::new("windows-31j", VariantEncoding::ShiftJis);
432#[cfg(feature = "shift-jis")]
434pub static WINDOWS_31J: &Encoding = &WINDOWS_31J_INIT;
435
436#[cfg(feature = "euc-kr")]
439pub(crate) const EUC_KR_INIT: Encoding = Encoding::new("EUC-KR", VariantEncoding::EucKr);
440#[cfg(feature = "euc-kr")]
442pub static EUC_KR: &Encoding = &EUC_KR_INIT;
443
444pub(crate) const REPLACEMENT_INIT: Encoding =
447 Encoding::new("replacement", VariantEncoding::Replacement);
448pub static REPLACEMENT: &Encoding = &REPLACEMENT_INIT;
450
451pub(crate) const UTF_16BE_INIT: Encoding = Encoding::new("UTF-16BE", VariantEncoding::Utf16Be);
452pub static UTF_16BE: &Encoding = &UTF_16BE_INIT;
454
455pub(crate) const UTF_16LE_INIT: Encoding = Encoding::new("UTF-16LE", VariantEncoding::Utf16Le);
456pub static UTF_16LE: &Encoding = &UTF_16LE_INIT;
458
459pub(crate) const X_USER_DEFINED_INIT: Encoding =
460 Encoding::new("x-user-defined", VariantEncoding::XUserDefined);
461pub static X_USER_DEFINED: &Encoding = &X_USER_DEFINED_INIT;