const ENC_TO_DEC: [Option<char>; 256] = [
Some('\u{0}'),
Some('\u{1}'),
Some('\u{2}'),
Some('\u{3}'),
Some('\u{4}'),
Some('\u{5}'),
Some('\u{6}'),
Some('\u{7}'),
Some('\u{8}'),
Some('\u{9}'),
Some('\u{A}'),
Some('\u{B}'),
Some('\u{C}'),
Some('\u{D}'),
Some('\u{E}'),
Some('\u{F}'),
Some('\u{10}'),
Some('\u{11}'),
Some('\u{12}'),
Some('\u{13}'),
Some('\u{14}'),
Some('\u{15}'),
Some('\u{16}'),
Some('\u{17}'),
Some('\u{18}'),
Some('\u{19}'),
Some('\u{1A}'),
Some('\u{1B}'),
Some('\u{1C}'),
Some('\u{1D}'),
Some('\u{1E}'),
Some('\u{1F}'),
Some('\u{20}'),
Some('\u{21}'),
Some('\u{22}'),
Some('\u{23}'),
Some('\u{24}'),
Some('\u{25}'),
Some('\u{26}'),
Some('\u{27}'),
Some('\u{28}'),
Some('\u{29}'),
Some('\u{2A}'),
Some('\u{2B}'),
Some('\u{2C}'),
Some('\u{2D}'),
Some('\u{2E}'),
Some('\u{2F}'),
Some('\u{30}'),
Some('\u{31}'),
Some('\u{32}'),
Some('\u{33}'),
Some('\u{34}'),
Some('\u{35}'),
Some('\u{36}'),
Some('\u{37}'),
Some('\u{38}'),
Some('\u{39}'),
Some('\u{3A}'),
Some('\u{3B}'),
Some('\u{3C}'),
Some('\u{3D}'),
Some('\u{3E}'),
Some('\u{3F}'),
Some('\u{40}'),
Some('\u{41}'),
Some('\u{42}'),
Some('\u{43}'),
Some('\u{44}'),
Some('\u{45}'),
Some('\u{46}'),
Some('\u{47}'),
Some('\u{48}'),
Some('\u{49}'),
Some('\u{4A}'),
Some('\u{4B}'),
Some('\u{4C}'),
Some('\u{4D}'),
Some('\u{4E}'),
Some('\u{4F}'),
Some('\u{50}'),
Some('\u{51}'),
Some('\u{52}'),
Some('\u{53}'),
Some('\u{54}'),
Some('\u{55}'),
Some('\u{56}'),
Some('\u{57}'),
Some('\u{58}'),
Some('\u{59}'),
Some('\u{5A}'),
Some('\u{5B}'),
Some('\u{5C}'),
Some('\u{5D}'),
Some('\u{5E}'),
Some('\u{5F}'),
Some('\u{60}'),
Some('\u{61}'),
Some('\u{62}'),
Some('\u{63}'),
Some('\u{64}'),
Some('\u{65}'),
Some('\u{66}'),
Some('\u{67}'),
Some('\u{68}'),
Some('\u{69}'),
Some('\u{6A}'),
Some('\u{6B}'),
Some('\u{6C}'),
Some('\u{6D}'),
Some('\u{6E}'),
Some('\u{6F}'),
Some('\u{70}'),
Some('\u{71}'),
Some('\u{72}'),
Some('\u{73}'),
Some('\u{74}'),
Some('\u{75}'),
Some('\u{76}'),
Some('\u{77}'),
Some('\u{78}'),
Some('\u{79}'),
Some('\u{7A}'),
Some('\u{7B}'),
Some('\u{7C}'),
Some('\u{7D}'),
Some('\u{7E}'),
Some('\u{7F}'),
Some('\u{20AC}'),
None,
Some('\u{201A}'),
Some('\u{192}'),
Some('\u{201E}'),
Some('\u{2026}'),
Some('\u{2020}'),
Some('\u{2021}'),
Some('\u{2C6}'),
Some('\u{2030}'),
Some('\u{160}'),
Some('\u{2039}'),
Some('\u{152}'),
None,
Some('\u{17D}'),
None,
None,
Some('\u{2018}'),
Some('\u{2019}'),
Some('\u{201C}'),
Some('\u{201D}'),
Some('\u{2022}'),
Some('\u{2013}'),
Some('\u{2014}'),
Some('\u{2DC}'),
Some('\u{2122}'),
Some('\u{161}'),
Some('\u{203A}'),
Some('\u{153}'),
None,
Some('\u{17E}'),
Some('\u{178}'),
Some('\u{A0}'),
Some('\u{A1}'),
Some('\u{A2}'),
Some('\u{A3}'),
Some('\u{A4}'),
Some('\u{A5}'),
Some('\u{A6}'),
Some('\u{A7}'),
Some('\u{A8}'),
Some('\u{A9}'),
Some('\u{AA}'),
Some('\u{AB}'),
Some('\u{AC}'),
Some('\u{FFFD}'),
Some('\u{AE}'),
Some('\u{AF}'),
Some('\u{B0}'),
Some('\u{B1}'),
Some('\u{B2}'),
Some('\u{B3}'),
Some('\u{B4}'),
Some('\u{B5}'),
Some('\u{B6}'),
Some('\u{B7}'),
Some('\u{B8}'),
Some('\u{B9}'),
Some('\u{BA}'),
Some('\u{BB}'),
Some('\u{BC}'),
Some('\u{BD}'),
Some('\u{BE}'),
Some('\u{BF}'),
Some('\u{C0}'),
Some('\u{C1}'),
Some('\u{C2}'),
Some('\u{C3}'),
Some('\u{C4}'),
Some('\u{C5}'),
Some('\u{C6}'),
Some('\u{C7}'),
Some('\u{C8}'),
Some('\u{C9}'),
Some('\u{CA}'),
Some('\u{CB}'),
Some('\u{CC}'),
Some('\u{CD}'),
Some('\u{CE}'),
Some('\u{CF}'),
Some('\u{D0}'),
Some('\u{D1}'),
Some('\u{D2}'),
Some('\u{D3}'),
Some('\u{D4}'),
Some('\u{D5}'),
Some('\u{D6}'),
Some('\u{D7}'),
Some('\u{D8}'),
Some('\u{D9}'),
Some('\u{DA}'),
Some('\u{DB}'),
Some('\u{DC}'),
Some('\u{DD}'),
Some('\u{DE}'),
Some('\u{DF}'),
Some('\u{E0}'),
Some('\u{E1}'),
Some('\u{E2}'),
Some('\u{E3}'),
Some('\u{E4}'),
Some('\u{E5}'),
Some('\u{E6}'),
Some('\u{E7}'),
Some('\u{E8}'),
Some('\u{E9}'),
Some('\u{EA}'),
Some('\u{EB}'),
Some('\u{EC}'),
Some('\u{ED}'),
Some('\u{EE}'),
Some('\u{EF}'),
Some('\u{F0}'),
Some('\u{F1}'),
Some('\u{F2}'),
Some('\u{F3}'),
Some('\u{F4}'),
Some('\u{F5}'),
Some('\u{F6}'),
Some('\u{F7}'),
Some('\u{F8}'),
Some('\u{F9}'),
Some('\u{FA}'),
Some('\u{FB}'),
Some('\u{FC}'),
Some('\u{FD}'),
Some('\u{FE}'),
Some('\u{FF}'),
];
pub(crate) const fn enc_to_dec(byte: u8) -> Option<char> {
ENC_TO_DEC[byte as usize]
}
pub(crate) const fn dec_to_enc(ch: char) -> Option<u8> {
match ch {
'\0'..='\u{7F}' | '\u{A0}'..='\u{AC}' | '\u{AF}'..='\u{FF}' => Some(ch as u8),
'\u{20AC}' => Some(128),
'\u{201A}' => Some(130),
'\u{192}' => Some(131),
'\u{201E}' => Some(132),
'\u{2026}' => Some(133),
'\u{2020}' => Some(134),
'\u{2021}' => Some(135),
'\u{2C6}' => Some(136),
'\u{2030}' => Some(137),
'\u{160}' => Some(138),
'\u{2039}' => Some(139),
'\u{152}' => Some(140),
'\u{17D}' => Some(142),
'\u{2018}' => Some(145),
'\u{2019}' => Some(146),
'\u{201C}' => Some(147),
'\u{201D}' => Some(148),
'\u{2022}' => Some(149),
'\u{2013}' => Some(150),
'\u{2014}' => Some(151),
'\u{2DC}' => Some(152),
'\u{2122}' => Some(153),
'\u{161}' => Some(154),
'\u{203A}' => Some(155),
'\u{153}' => Some(156),
'\u{17E}' => Some(158),
'\u{178}' => Some(159),
'\u{FFFD}' => Some(173),
_ => None
}
}