#[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum Key { A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num0, Enter, Escape, Backspace, Tab, Space, Minus, Equals, LeftBracket, RightBracket, Backslash, Semicolon, Apostrophe, Backquote, Comma, Period, Slash, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PrintScreen, ScrollLock, Pause, Insert, Home, PageUp, Delete, End, PageDown, Right, Left, Down, Up, NumLock, CapsLock, LeftShift, RightShift, LeftCtrl, RightCtrl, LeftAlt, RightAlt, LeftSuper, RightSuper, NumPad0, NumPad1, NumPad2, NumPad3, NumPad4, NumPad5, NumPad6, NumPad7, NumPad8, NumPad9, NumPadDot, NumPadSlash, NumPadAsterisk, NumPadMinus, NumPadPlus, NumPadEnter, Unknown, } pub struct KeyEvent { pub key: Key, pub state: bool, } impl KeyEvent { pub fn new(key: Key, state: bool) -> Self { Self { key, state, } } }