#[rustfmt::skip]
const HIGH: [char; 128] = [
'Ä','Å','Ç','É','Ñ','Ö','Ü','á','à','â','ä','ã','å','ç','é','è',
'ê','ë','í','ì','î','ï','ñ','ó','ò','ô','ö','õ','ú','ù','û','ü',
'†','°','¢','£','§','•','¶','ß','®','©','™','´','¨','≠','Æ','Ø',
'∞','±','≤','≥','¥','µ','∂','∑','∏','π','∫','ª','º','Ω','æ','ø',
'¿','¡','¬','√','ƒ','≈','∆','«','»','…','\u{00A0}','À','Ã','Õ','Œ','œ',
'–','—','“','”','‘','’','÷','◊','ÿ','Ÿ','⁄','€','‹','›','fi','fl',
'‡','·','‚','„','‰','Â','Ê','Á','Ë','È','Í','Î','Ï','Ì','Ó','Ô',
'\u{F8FF}','Ò','Ú','Û','Ù','ı','ˆ','˜','¯','˘','˙','˚','¸','˝','˛','ˇ',
];
pub fn decode(bytes: &[u8]) -> String {
bytes
.iter()
.map(|&b| {
if b < 0x80 {
b as char
} else {
HIGH[(b - 0x80) as usize]
}
})
.collect()
}
pub fn eq_ignore_case(a: &str, b: &str) -> bool {
let fold = |c: char| {
if c.is_ascii_uppercase() {
c.to_ascii_lowercase()
} else {
c
}
};
a.chars().map(fold).eq(b.chars().map(fold))
}