static ENGLISH: [[char; 2]; 58] = [ ['\0', '\0'], ['\x1B', '\x1B'], ['1', '!'], ['2', '@'], ['3', '#'], ['4', '$'], ['5', '%'], ['6', '^'], ['7', '&'], ['8', '*'], ['9', '('], ['0', ')'], ['-', '_'], ['=', '+'], ['\x7F', '\x7F'], ['\t', '\t'], ['q', 'Q'], ['w', 'W'], ['e', 'E'], ['r', 'R'], ['t', 'T'], ['y', 'Y'], ['u', 'U'], ['i', 'I'], ['o', 'O'], ['p', 'P'], ['[', '{'], [']', '}'], ['\n', '\n'], ['\0', '\0'], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], [';', ':'], ['\'', '"'], ['`', '~'], ['\0', '\0'], ['\\', '|'], ['z', 'Z'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], ['m', 'M'], [',', '<'], ['.', '>'], ['/', '?'], ['\0', '\0'], ['\0', '\0'], ['\0', '\0'], [' ', ' '] ]; pub fn get_char(scancode: u8, shift: bool) -> char { if let Some(c) = ENGLISH.get(scancode as usize) { if shift { c[1] } else { c[0] } } else { '\0' } }