pub struct KeyEvent {
    pub key: Key,
    pub pressed: bool,
}

pub enum Key {
    None,
    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,
    ArrowUp,
    ArrowDown,
    ArrowLeft,
    ArrowRight,
    Key0,
    Key1,
    Key2,
    Key3,
    Key4,
    Key5,
    Key6,
    Key7,
    Key8,
    Key9,
    LeftCtrl,
    RightCtrl,
    Enter,
    LeftShift,
    RightShift,
    Escape,
    LeftAlt,
    RightAlt,
    Backspace,
    CapsLock,
    Comma,
    Minus,
    Period,
    Space,
    OSLeft,
    OSRight,
    Tab,
}
