getchar/
lib.rs

1use std::io;
2use std::io::{Read, Write};
3use termion::raw::IntoRawMode;
4
5pub fn getchar() -> Option<char> {
6    let mut buffer = [0];
7    let stdout = io::stdout().into_raw_mode().unwrap();
8    let mut stdin = io::stdin();
9
10    stdout.lock().flush().unwrap();
11
12    if stdin.read_exact(&mut buffer).is_ok() {
13        Some( buffer[0] as char)
14    } else {
15        None
16    }
17}