ferroui_base/input/
key_symbol_helper.rs1pub struct KeySymbolHelper;
3
4impl KeySymbolHelper {
5 pub fn is_allowed_ascii_key_symbol(c: char) -> bool {
8 let code = c as u32;
9
10 if code < 0x20 {
11 return matches!(code, 0x08 | 0x09 | 0x0D | 0x1B);
13 }
14
15 code != 0x7F
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23
24 #[test]
25 fn filters_control_characters() {
26 assert!(KeySymbolHelper::is_allowed_ascii_key_symbol('a'));
27 assert!(KeySymbolHelper::is_allowed_ascii_key_symbol('\t'));
28 assert!(KeySymbolHelper::is_allowed_ascii_key_symbol('\u{1B}'));
29 assert!(!KeySymbolHelper::is_allowed_ascii_key_symbol('\u{1}'));
30 assert!(!KeySymbolHelper::is_allowed_ascii_key_symbol('\u{7F}'));
31 }
32}