18 lines
660 B
Rust
18 lines
660 B
Rust
const CODE_PAGE_437_SECOND_HALF: &str = concat!(
|
|
"ÇüéâäàåçêëèïîìÄÅ",
|
|
"ÉæÆôöòûùÿÖÜ¢£¥₧ƒ",
|
|
"áíóúñѪº¿⌐¬½¼¡«»",
|
|
"░▒▓│┤╡╢╖╕╣║╗╝╜╛┐",
|
|
"└┴┬├─┼╞╟╚╔╩╦╠═╬╧",
|
|
"╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀",
|
|
"αßΓπΣσµτΦΘΩδ∞φε∩",
|
|
"≡±≥≤⌠⌡÷≈°∙·√ⁿ²■",
|
|
);
|
|
|
|
fn is_safe(c: char) -> bool {
|
|
c.is_ascii_graphic() || c == ' ' || c == '\n' || CODE_PAGE_437_SECOND_HALF.contains(c)
|
|
}
|
|
|
|
pub fn sanitize(text: &str) -> String {
|
|
text.chars().filter(|&c| is_safe(c)).collect::<String>()
|
|
}
|