Я пишу приложение ncurses с Rust.
Когда пользователь вводит действительный символ UTF-8 (например, ć
или несколько азиатских букв), я хочу создать строку поиска из это и распечатать его на экран. В настоящее время у меня есть это:
use ncurses::*;
fn main() {
...
let mut search_string = String::new();
...
loop {
let user_input = getch();
match user_input {
27 => break,
KEY_UP => { ... },
KEY_DOWN => { ... },
KEY_BACKSPACE => { ... },
_ => {
search_string += &std::char::from_u32(user_input as u32).expect("Invalid char.").to_string();
mvaddstr(0, 0, &search_string);
app::autosearch();
}
}
}
}
Однако, это ловит все другие ключи, такие как F5
, KEY_LEFT
, и т. Д. c.
Как я могу сопоставить только действительный UTF -8 букв?