//! minifb::Key → Set-1 扫描码映射。返回 (扫描码, 是否扩展键)。 use minifb::Key; pub fn map(k: Key) -> Option<(u16, bool)> { use Key::*; Some(match k { A => (0x1E, false), B => (0x30, false), C => (0x2E, false), D => (0x20, false), E => (0x12, false), F => (0x21, false), G => (0x22, false), H => (0x23, false), I => (0x17, false), J => (0x24, false), K => (0x25, false), L => (0x26, false), M => (0x32, false), N => (0x31, false), O => (0x18, false), P => (0x19, false), Q => (0x10, false), R => (0x13, false), S => (0x1F, false), T => (0x14, false), U => (0x16, false), V => (0x2F, false), W => (0x11, false), X => (0x2D, false), Y => (0x15, false), Z => (0x2C, false), Key1 => (0x02, false), Key2 => (0x03, false), Key3 => (0x04, false), Key4 => (0x05, false), Key5 => (0x06, false), Key6 => (0x07, false), Key7 => (0x08, false), Key8 => (0x09, false), Key9 => (0x0A, false), Key0 => (0x0B, false), Space => (0x39, false), Enter => (0x1C, false), Backspace => (0x0E, false), Tab => (0x0F, false), CapsLock => (0x3A, false), Backquote => (0x29, false), Minus => (0x0C, false), Equal => (0x0D, false), Backslash => (0x2B, false), Comma => (0x33, false), Period => (0x34, false), Slash => (0x35, false), Semicolon => (0x27, false), Apostrophe => (0x28, false), LeftShift => (0x2A, false), LeftCtrl => (0x1D, false), LeftAlt => (0x38, false), LeftSuper => (0x5B, true), Up => (0x48, true), Down => (0x50, true), Left => (0x4B, true), Right => (0x4D, true), Home => (0x47, true), End => (0x4F, true), Delete => (0x53, true), PageUp => (0x49, true), PageDown => (0x51, true), _ => return None, }) }