enable all eci charactersets

This is not enabled for the eci encoder set builder, in which the encoding crate results in some encoders being equivelent and thus resulting in odd test cases.
This commit is contained in:
Henry Schimke
2023-03-06 12:23:53 -06:00
parent 284067f582
commit 921b51a405
3 changed files with 81 additions and 56 deletions

View File

@@ -34,14 +34,14 @@ pub enum CharacterSet {
ISO8859_3, //(5, "ISO-8859-3"), ISO8859_3, //(5, "ISO-8859-3"),
ISO8859_4, //(6, "ISO-8859-4"), ISO8859_4, //(6, "ISO-8859-4"),
ISO8859_5, //(7, "ISO-8859-5"), ISO8859_5, //(7, "ISO-8859-5"),
// ISO8859_6, //(8, "ISO-8859-6"), ISO8859_6, //(8, "ISO-8859-6"),
ISO8859_7, //(9, "ISO-8859-7"), ISO8859_7, //(9, "ISO-8859-7"),
// ISO8859_8, //(10, "ISO-8859-8"), ISO8859_8, //(10, "ISO-8859-8"),
ISO8859_9, //(11, "ISO-8859-9"), ISO8859_9, //(11, "ISO-8859-9"),
// ISO8859_10, //(12, "ISO-8859-10"), ISO8859_10, //(12, "ISO-8859-10"),
// ISO8859_11, //(13, "ISO-8859-11"), ISO8859_11, //(13, "ISO-8859-11"),
ISO8859_13, //(15, "ISO-8859-13"), ISO8859_13, //(15, "ISO-8859-13"),
// ISO8859_14, //(16, "ISO-8859-14"), ISO8859_14, //(16, "ISO-8859-14"),
ISO8859_15, //(17, "ISO-8859-15"), ISO8859_15, //(17, "ISO-8859-15"),
ISO8859_16, //(18, "ISO-8859-16"), ISO8859_16, //(18, "ISO-8859-16"),
Shift_JIS, //(20, "Shift_JIS"), Shift_JIS, //(20, "Shift_JIS"),
@@ -109,14 +109,14 @@ impl CharacterSet {
CharacterSet::ISO8859_3 => "ISO-8859-3", CharacterSet::ISO8859_3 => "ISO-8859-3",
CharacterSet::ISO8859_4 => "ISO-8859-4", CharacterSet::ISO8859_4 => "ISO-8859-4",
CharacterSet::ISO8859_5 => "ISO-8859-5", CharacterSet::ISO8859_5 => "ISO-8859-5",
// CharacterSet::ISO8859_6 => "ISO-8859-6", CharacterSet::ISO8859_6 => "ISO-8859-6",
CharacterSet::ISO8859_7 => "ISO-8859-7", CharacterSet::ISO8859_7 => "ISO-8859-7",
// CharacterSet::ISO8859_8 => "ISO-8859-8", CharacterSet::ISO8859_8 => "ISO-8859-8",
CharacterSet::ISO8859_9 => "ISO-8859-9", CharacterSet::ISO8859_9 => "ISO-8859-9",
// CharacterSet::ISO8859_10 => "ISO-8859-10", CharacterSet::ISO8859_10 => "ISO-8859-10",
// CharacterSet::ISO8859_11 => "ISO-8859-11", CharacterSet::ISO8859_11 => "ISO-8859-11",
CharacterSet::ISO8859_13 => "ISO-8859-13", CharacterSet::ISO8859_13 => "ISO-8859-13",
// CharacterSet::ISO8859_14 => "ISO-8859-14", CharacterSet::ISO8859_14 => "ISO-8859-14",
CharacterSet::ISO8859_15 => "ISO-8859-15", CharacterSet::ISO8859_15 => "ISO-8859-15",
CharacterSet::ISO8859_16 => "ISO-8859-16", CharacterSet::ISO8859_16 => "ISO-8859-16",
CharacterSet::Shift_JIS => "shift_jis", CharacterSet::Shift_JIS => "shift_jis",
@@ -148,14 +148,14 @@ impl CharacterSet {
CharacterSet::ISO8859_3 => "iso-8859-3", CharacterSet::ISO8859_3 => "iso-8859-3",
CharacterSet::ISO8859_4 => "iso-8859-4", CharacterSet::ISO8859_4 => "iso-8859-4",
CharacterSet::ISO8859_5 => "iso-8859-5", CharacterSet::ISO8859_5 => "iso-8859-5",
// CharacterSet::ISO8859_6 => "ISO-8859-6", CharacterSet::ISO8859_6 => "ISO-8859-6",
CharacterSet::ISO8859_7 => "iso-8859-7", CharacterSet::ISO8859_7 => "iso-8859-7",
// CharacterSet::ISO8859_8 => "ISO-8859-8", CharacterSet::ISO8859_8 => "ISO-8859-8",
CharacterSet::ISO8859_9 => "iso-8859-9", CharacterSet::ISO8859_9 => "iso-8859-9",
// CharacterSet::ISO8859_10 => "ISO-8859-10", CharacterSet::ISO8859_10 => "ISO-8859-10",
// CharacterSet::ISO8859_11 => "ISO-8859-11", CharacterSet::ISO8859_11 => "ISO-8859-11",
CharacterSet::ISO8859_13 => "iso-8859-13", CharacterSet::ISO8859_13 => "iso-8859-13",
// CharacterSet::ISO8859_14 => "ISO-8859-14", CharacterSet::ISO8859_14 => "ISO-8859-14",
CharacterSet::ISO8859_15 => "iso-8859-15", CharacterSet::ISO8859_15 => "iso-8859-15",
CharacterSet::ISO8859_16 => "iso-8859-16", CharacterSet::ISO8859_16 => "iso-8859-16",
CharacterSet::Shift_JIS => "shift_jis", CharacterSet::Shift_JIS => "shift_jis",

View File

@@ -123,11 +123,11 @@ impl From<CharacterSet> for Eci {
CharacterSet::UTF32BE => Eci::UTF32BE, CharacterSet::UTF32BE => Eci::UTF32BE,
CharacterSet::UTF32LE => Eci::UTF32LE, CharacterSet::UTF32LE => Eci::UTF32LE,
CharacterSet::Binary => Eci::Binary, CharacterSet::Binary => Eci::Binary,
// CharacterSet::ISO8859_6 => Eci::ISO8859_6, CharacterSet::ISO8859_6 => Eci::ISO8859_6,
// CharacterSet::ISO8859_8 => Eci::ISO8859_8, CharacterSet::ISO8859_8 => Eci::ISO8859_8,
// CharacterSet::ISO8859_10 => Eci::ISO8859_10, CharacterSet::ISO8859_10 => Eci::ISO8859_10,
// CharacterSet::ISO8859_11 => Eci::ISO8859_11, CharacterSet::ISO8859_11 => Eci::ISO8859_11,
// CharacterSet::ISO8859_14 => Eci::ISO8859_14, CharacterSet::ISO8859_14 => Eci::ISO8859_14,
_ => Eci::Unknown, _ => Eci::Unknown,
} }
} }
@@ -142,14 +142,14 @@ impl From<Eci> for CharacterSet {
Eci::ISO8859_3 => CharacterSet::ISO8859_3, Eci::ISO8859_3 => CharacterSet::ISO8859_3,
Eci::ISO8859_4 => CharacterSet::ISO8859_4, Eci::ISO8859_4 => CharacterSet::ISO8859_4,
Eci::ISO8859_5 => CharacterSet::ISO8859_5, Eci::ISO8859_5 => CharacterSet::ISO8859_5,
// Eci::ISO8859_6 => CharacterSet::ISO8859_6, Eci::ISO8859_6 => CharacterSet::ISO8859_6,
Eci::ISO8859_7 => CharacterSet::ISO8859_7, Eci::ISO8859_7 => CharacterSet::ISO8859_7,
// Eci::ISO8859_8 => CharacterSet::ISO8859_8, Eci::ISO8859_8 => CharacterSet::ISO8859_8,
Eci::ISO8859_9 => CharacterSet::ISO8859_9, Eci::ISO8859_9 => CharacterSet::ISO8859_9,
// Eci::ISO8859_10 => CharacterSet::ISO8859_10, Eci::ISO8859_10 => CharacterSet::ISO8859_10,
// Eci::ISO8859_11 => CharacterSet::ISO8859_11, Eci::ISO8859_11 => CharacterSet::ISO8859_11,
Eci::ISO8859_13 => CharacterSet::ISO8859_13, Eci::ISO8859_13 => CharacterSet::ISO8859_13,
// Eci::ISO8859_14 => CharacterSet::ISO8859_14, Eci::ISO8859_14 => CharacterSet::ISO8859_14,
Eci::ISO8859_15 => CharacterSet::ISO8859_15, Eci::ISO8859_15 => CharacterSet::ISO8859_15,
Eci::ISO8859_16 => CharacterSet::ISO8859_16, Eci::ISO8859_16 => CharacterSet::ISO8859_16,
Eci::Shift_JIS => CharacterSet::Shift_JIS, Eci::Shift_JIS => CharacterSet::Shift_JIS,

View File

@@ -20,38 +20,63 @@ use super::{CharacterSet, Eci};
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
static ENCODERS: Lazy<Vec<CharacterSet>> = Lazy::new(|| { // static ENCODERS: Lazy<Vec<CharacterSet>> = Lazy::new(|| {
let mut enc_vec = Vec::new(); // let mut enc_vec = Vec::new();
for name in NAMES { // for name in NAMES {
if let Some(enc) = CharacterSet::get_character_set_by_name(name) { // if let Some(enc) = CharacterSet::get_character_set_by_name(name) {
enc_vec.push(enc); // enc_vec.push(enc);
} // }
} // }
enc_vec // enc_vec
}); // });
const NAMES: [&str; 20] = [ // const NAMES: [&str; 20] = [
"IBM437", // "IBM437",
"ISO-8859-2", // "ISO-8859-2",
"ISO-8859-3", // "ISO-8859-3",
"ISO-8859-4", // "ISO-8859-4",
"ISO-8859-5", // "ISO-8859-5",
"ISO-8859-6", // "ISO-8859-6",
"ISO-8859-7", // "ISO-8859-7",
"ISO-8859-8", // "ISO-8859-8",
"ISO-8859-9", // "ISO-8859-9",
"ISO-8859-10", // "ISO-8859-10",
"ISO-8859-11", // "ISO-8859-11",
"ISO-8859-13", // "ISO-8859-13",
"ISO-8859-14", // "ISO-8859-14",
"ISO-8859-15", // "ISO-8859-15",
"ISO-8859-16", // "ISO-8859-16",
"windows-1250", // "windows-1250",
"windows-1251", // "windows-1251",
"windows-1252", // "windows-1252",
"windows-1256", // "windows-1256",
"Shift_JIS", // "Shift_JIS",
]; // ];
static ENCODERS: Lazy<Vec<CharacterSet>> = Lazy::new(|| {
vec![
CharacterSet::Cp437,
CharacterSet::ISO8859_2,
CharacterSet::ISO8859_3,
CharacterSet::ISO8859_4,
CharacterSet::ISO8859_5,
// CharacterSet::ISO8859_6,
CharacterSet::ISO8859_7,
// CharacterSet::ISO8859_8,
CharacterSet::ISO8859_9,
// CharacterSet::ISO8859_10,
// CharacterSet::ISO8859_11,
// CharacterSet::ISO8859_13,
// CharacterSet::ISO8859_14,
CharacterSet::ISO8859_15,
CharacterSet::ISO8859_16,
CharacterSet::Shift_JIS,
CharacterSet::Cp1250,
CharacterSet::Cp1251,
CharacterSet::Cp1252,
CharacterSet::Cp1256,
]
});
/** /**
* Set of CharsetEncoders for a given input string * Set of CharsetEncoders for a given input string