wasm_game_lib/inputs/
keyboard.rs

1/// An enum representing all the keys of a keyboard (normally)
2#[derive(Debug, PartialEq)]
3#[allow(missing_docs)]
4pub enum Key {
5    Unknow = 0,
6    BackSpace = 8,
7    Tab = 9,
8    Enter = 13,
9    Shift = 16,
10    Ctrl = 17,
11    Alt = 18,
12    Pause = 19,
13    CapsLock = 20,
14    Escape = 27,
15    PageUp = 33,
16    PageDown = 34,
17    End = 35,
18    Home = 36,
19    LeftArrow = 37,
20    UpArrow = 38,
21    RightArrow = 39,
22    DownArrow = 40,
23    Insert = 45,
24    Delete = 46,
25    Zero = 48,
26    One = 49,
27    Two = 50,
28    Three = 51,
29    Four = 52,
30    Five = 53,
31    Six = 54,
32    Seven = 55,
33    Eight = 56,
34    Nine = 57,
35    A = 65,
36    B = 66,
37    C = 67,
38    D = 68,
39    E = 69,
40    F = 70,
41    G = 71,
42    H = 72,
43    I = 73,
44    J = 74,
45    K = 75,
46    L = 76,
47    M = 77,
48    N = 78,
49    O = 79,
50    P = 80,
51    Q = 81,
52    R = 82,
53    S = 83,
54    T = 84,
55    U = 85,
56    V = 86,
57    W = 87,
58    X = 88,
59    Y = 89,
60    Z = 90,
61    LeftWindowKey = 91,
62    RightWindowKey = 92,
63    SelectKey = 93,
64    Numpad0 = 96,
65    Numpad1 = 97,
66    Numpad2 = 98,
67    Numpad3 = 99,
68    Numpad4 = 100,
69    Numpad5 = 101,
70    Numpad6 = 102,
71    Numpad7 = 103,
72    Numpad8 = 104,
73    Numpad9 = 105,
74    Multiply = 106,
75    Add = 107,
76    Subtract = 109,
77    DecimalPoint = 110,
78    Divide = 111,
79    F1 = 112,
80    F2 = 113,
81    F3 = 114,
82    F4 = 115,
83    F5 = 116,
84    F6 = 117,
85    F7 = 118,
86    F8 = 119,
87    F9 = 120,
88    F10 = 121,
89    F11 = 122,
90    F12 = 123,
91    NumLock = 144,
92    ScrollLock = 145,
93    SemiColon = 186,
94    EqualSign = 187,
95    Comma = 188,
96    Dash = 189,
97    Period = 190,
98    ForwardSlash = 191,
99    GraveAccent = 192,
100    OpenBracket = 219,
101    BackSlash = 220,
102    CloseBraket = 221,
103    SingleQuote = 222,
104}
105
106impl From<u32> for Key {
107    fn from(key_code: u32) -> Self {
108        match key_code {
109            8 => Key::BackSpace,
110            9 => Key::Tab,
111            13 => Key::Enter,
112            16 => Key::Shift,
113            17 => Key::Ctrl,
114            18 => Key::Alt,
115            19 => Key::Pause,
116            20 => Key::CapsLock,
117            27 => Key::Escape,
118            33 => Key::PageUp,
119            34 => Key::PageDown,
120            35 => Key::End,
121            36 => Key::Home,
122            37 => Key::LeftArrow,
123            38 => Key::UpArrow,
124            39 => Key::RightArrow,
125            40 => Key::DownArrow,
126            45 => Key::Insert,
127            46 => Key::Delete,
128            48 => Key::Zero,
129            49 => Key::One,
130            50 => Key::Two,
131            51 => Key::Three,
132            52 => Key::Four,
133            53 => Key::Five,
134            54 => Key::Six,
135            55 => Key::Seven,
136            56 => Key::Eight,
137            57 => Key::Nine,
138            65 => Key::A,
139            66 => Key::B,
140            67 => Key::C,
141            68 => Key::D,
142            69 => Key::E,
143            70 => Key::F,
144            71 => Key::G,
145            72 => Key::H,
146            73 => Key::I,
147            74 => Key::J,
148            75 => Key::K,
149            76 => Key::L,
150            77 => Key::M,
151            78 => Key::N,
152            79 => Key::O,
153            80 => Key::P,
154            81 => Key::Q,
155            82 => Key::R,
156            83 => Key::S,
157            84 => Key::T,
158            85 => Key::U,
159            86 => Key::V,
160            87 => Key::W,
161            88 => Key::X,
162            89 => Key::Y,
163            90 => Key::Z,
164            91 => Key::LeftWindowKey,
165            92 => Key::RightWindowKey,
166            93 => Key::SelectKey,
167            96 => Key::Numpad0,
168            97 => Key::Numpad1,
169            98 => Key::Numpad2,
170            99 => Key::Numpad3,
171            100 => Key::Numpad4,
172            101 => Key::Numpad5,
173            102 => Key::Numpad6,
174            103 => Key::Numpad7,
175            104 => Key::Numpad8,
176            105 => Key::Numpad9,
177            106 => Key::Multiply,
178            107 => Key::Add,
179            109 => Key::Subtract,
180            110 => Key::DecimalPoint,
181            111 => Key::Divide,
182            112 => Key::F1,
183            113 => Key::F2,
184            114 => Key::F3,
185            115 => Key::F4,
186            116 => Key::F5,
187            117 => Key::F6,
188            118 => Key::F7,
189            119 => Key::F8,
190            120 => Key::F9,
191            121 => Key::F10,
192            122 => Key::F11,
193            123 => Key::F12,
194            144 => Key::NumLock,
195            145 => Key::ScrollLock,
196            186 => Key::SemiColon,
197            187 => Key::EqualSign,
198            188 => Key::Comma,
199            189 => Key::Dash,
200            190 => Key::Period,
201            191 => Key::ForwardSlash,
202            192 => Key::GraveAccent,
203            219 => Key::OpenBracket,
204            220 => Key::BackSlash,
205            221 => Key::CloseBraket,
206            222 => Key::SingleQuote,
207            _ => Key::Unknow
208        }
209    }
210}
211
212#[derive(Debug)]
213/// A keyboard event
214pub enum KeyboardEvent {
215    /// A key has been pressed
216    Down(Key),
217    /// A key has been released
218    Up(Key)
219}