1#[derive(Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
5#[repr(transparent)]
6pub struct Key(pub u16);
7
8impl Key {
9 #[inline]
10 pub const fn new(code: u16) -> Self {
11 Self(code)
12 }
13
14 #[inline]
15 pub const fn code(self) -> u16 {
16 self.0
17 }
18
19 pub(crate) const COUNT: usize = libc::KEY_CNT;
20}
21
22const fn bit_elts<T>(bits: usize) -> usize {
23 let width = std::mem::size_of::<T>() * 8;
24 bits / width + (bits % width != 0) as usize
25}
26const KEY_ARRAY_LEN: usize = bit_elts::<u8>(Key::COUNT);
28type KeyArray = [u8; KEY_ARRAY_LEN];
29const KEY_ARRAY_INIT: KeyArray = [0; KEY_ARRAY_LEN];
30
31evdev_enum!(
32 Key,
33 Array: Box<[u8; KEY_ARRAY_LEN]>,
34 |x| bitvec::slice::BitSlice::from_slice(&x[..]).unwrap(),
35 |x| bitvec::slice::BitSlice::from_slice_mut(&mut x[..]).unwrap(),
36 |x| &mut x[..],
37 || Box::new(KEY_ARRAY_INIT),
38 KEY_RESERVED = 0,
39 KEY_ESC = 1,
40 KEY_1 = 2,
41 KEY_2 = 3,
42 KEY_3 = 4,
43 KEY_4 = 5,
44 KEY_5 = 6,
45 KEY_6 = 7,
46 KEY_7 = 8,
47 KEY_8 = 9,
48 KEY_9 = 10,
49 KEY_0 = 11,
50 KEY_MINUS = 12,
51 KEY_EQUAL = 13,
52 KEY_BACKSPACE = 14,
53 KEY_TAB = 15,
54 KEY_Q = 16,
55 KEY_W = 17,
56 KEY_E = 18,
57 KEY_R = 19,
58 KEY_T = 20,
59 KEY_Y = 21,
60 KEY_U = 22,
61 KEY_I = 23,
62 KEY_O = 24,
63 KEY_P = 25,
64 KEY_LEFTBRACE = 26,
65 KEY_RIGHTBRACE = 27,
66 KEY_ENTER = 28,
67 KEY_LEFTCTRL = 29,
68 KEY_A = 30,
69 KEY_S = 31,
70 KEY_D = 32,
71 KEY_F = 33,
72 KEY_G = 34,
73 KEY_H = 35,
74 KEY_J = 36,
75 KEY_K = 37,
76 KEY_L = 38,
77 KEY_SEMICOLON = 39,
78 KEY_APOSTROPHE = 40,
79 KEY_GRAVE = 41,
80 KEY_LEFTSHIFT = 42,
81 KEY_BACKSLASH = 43,
82 KEY_Z = 44,
83 KEY_X = 45,
84 KEY_C = 46,
85 KEY_V = 47,
86 KEY_B = 48,
87 KEY_N = 49,
88 KEY_M = 50,
89 KEY_COMMA = 51,
90 KEY_DOT = 52,
91 KEY_SLASH = 53,
92 KEY_RIGHTSHIFT = 54,
93 KEY_KPASTERISK = 55,
94 KEY_LEFTALT = 56,
95 KEY_SPACE = 57,
96 KEY_CAPSLOCK = 58,
97 KEY_F1 = 59,
98 KEY_F2 = 60,
99 KEY_F3 = 61,
100 KEY_F4 = 62,
101 KEY_F5 = 63,
102 KEY_F6 = 64,
103 KEY_F7 = 65,
104 KEY_F8 = 66,
105 KEY_F9 = 67,
106 KEY_F10 = 68,
107 KEY_NUMLOCK = 69,
108 KEY_SCROLLLOCK = 70,
109 KEY_KP7 = 71,
110 KEY_KP8 = 72,
111 KEY_KP9 = 73,
112 KEY_KPMINUS = 74,
113 KEY_KP4 = 75,
114 KEY_KP5 = 76,
115 KEY_KP6 = 77,
116 KEY_KPPLUS = 78,
117 KEY_KP1 = 79,
118 KEY_KP2 = 80,
119 KEY_KP3 = 81,
120 KEY_KP0 = 82,
121 KEY_KPDOT = 83,
122 KEY_ZENKAKUHANKAKU = 85,
123 KEY_102ND = 86,
124 KEY_F11 = 87,
125 KEY_F12 = 88,
126 KEY_RO = 89,
127 KEY_KATAKANA = 90,
128 KEY_HIRAGANA = 91,
129 KEY_HENKAN = 92,
130 KEY_KATAKANAHIRAGANA = 93,
131 KEY_MUHENKAN = 94,
132 KEY_KPJPCOMMA = 95,
133 KEY_KPENTER = 96,
134 KEY_RIGHTCTRL = 97,
135 KEY_KPSLASH = 98,
136 KEY_SYSRQ = 99,
137 KEY_RIGHTALT = 100,
138 KEY_LINEFEED = 101,
139 KEY_HOME = 102,
140 KEY_UP = 103,
141 KEY_PAGEUP = 104,
142 KEY_LEFT = 105,
143 KEY_RIGHT = 106,
144 KEY_END = 107,
145 KEY_DOWN = 108,
146 KEY_PAGEDOWN = 109,
147 KEY_INSERT = 110,
148 KEY_DELETE = 111,
149 KEY_MACRO = 112,
150 KEY_MUTE = 113,
151 KEY_VOLUMEDOWN = 114,
152 KEY_VOLUMEUP = 115,
153 KEY_POWER = 116, KEY_KPEQUAL = 117,
155 KEY_KPPLUSMINUS = 118,
156 KEY_PAUSE = 119,
157 KEY_SCALE = 120, KEY_KPCOMMA = 121,
159 KEY_HANGEUL = 122,
160 KEY_HANJA = 123,
161 KEY_YEN = 124,
162 KEY_LEFTMETA = 125,
163 KEY_RIGHTMETA = 126,
164 KEY_COMPOSE = 127,
165 KEY_STOP = 128, KEY_AGAIN = 129,
167 KEY_PROPS = 130, KEY_UNDO = 131, KEY_FRONT = 132,
170 KEY_COPY = 133, KEY_OPEN = 134, KEY_PASTE = 135, KEY_FIND = 136, KEY_CUT = 137, KEY_HELP = 138, KEY_MENU = 139, KEY_CALC = 140, KEY_SETUP = 141,
179 KEY_SLEEP = 142, KEY_WAKEUP = 143, KEY_FILE = 144, KEY_SENDFILE = 145,
183 KEY_DELETEFILE = 146,
184 KEY_XFER = 147,
185 KEY_PROG1 = 148,
186 KEY_PROG2 = 149,
187 KEY_WWW = 150, KEY_MSDOS = 151,
189 KEY_COFFEE = 152, KEY_DIRECTION = 153,
191 KEY_ROTATE_DISPLAY = 153,
192 KEY_CYCLEWINDOWS = 154,
193 KEY_MAIL = 155,
194 KEY_BOOKMARKS = 156, KEY_COMPUTER = 157,
196 KEY_BACK = 158, KEY_FORWARD = 159, KEY_CLOSECD = 160,
199 KEY_EJECTCD = 161,
200 KEY_EJECTCLOSECD = 162,
201 KEY_NEXTSONG = 163,
202 KEY_PLAYPAUSE = 164,
203 KEY_PREVIOUSSONG = 165,
204 KEY_STOPCD = 166,
205 KEY_RECORD = 167,
206 KEY_REWIND = 168,
207 KEY_PHONE = 169, KEY_ISO = 170,
209 KEY_CONFIG = 171, KEY_HOMEPAGE = 172, KEY_REFRESH = 173, KEY_EXIT = 174, KEY_MOVE = 175,
214 KEY_EDIT = 176,
215 KEY_SCROLLUP = 177,
216 KEY_SCROLLDOWN = 178,
217 KEY_KPLEFTPAREN = 179,
218 KEY_KPRIGHTPAREN = 180,
219 KEY_NEW = 181, KEY_REDO = 182, KEY_F13 = 183,
222 KEY_F14 = 184,
223 KEY_F15 = 185,
224 KEY_F16 = 186,
225 KEY_F17 = 187,
226 KEY_F18 = 188,
227 KEY_F19 = 189,
228 KEY_F20 = 190,
229 KEY_F21 = 191,
230 KEY_F22 = 192,
231 KEY_F23 = 193,
232 KEY_F24 = 194,
233 KEY_PLAYCD = 200,
234 KEY_PAUSECD = 201,
235 KEY_PROG3 = 202,
236 KEY_PROG4 = 203,
237 KEY_DASHBOARD = 204, KEY_SUSPEND = 205,
239 KEY_CLOSE = 206, KEY_PLAY = 207,
241 KEY_FASTFORWARD = 208,
242 KEY_BASSBOOST = 209,
243 KEY_PRINT = 210, KEY_HP = 211,
245 KEY_CAMERA = 212,
246 KEY_SOUND = 213,
247 KEY_QUESTION = 214,
248 KEY_EMAIL = 215,
249 KEY_CHAT = 216,
250 KEY_SEARCH = 217,
251 KEY_CONNECT = 218,
252 KEY_FINANCE = 219,
253 KEY_SPORT = 220,
254 KEY_SHOP = 221,
255 KEY_ALTERASE = 222,
256 KEY_CANCEL = 223,
257 KEY_BRIGHTNESSDOWN = 224,
258 KEY_BRIGHTNESSUP = 225,
259 KEY_MEDIA = 226,
260 KEY_SWITCHVIDEOMODE = 227,
261 KEY_KBDILLUMTOGGLE = 228,
262 KEY_KBDILLUMDOWN = 229,
263 KEY_KBDILLUMUP = 230,
264 KEY_SEND = 231,
265 KEY_REPLY = 232,
266 KEY_FORWARDMAIL = 233,
267 KEY_SAVE = 234,
268 KEY_DOCUMENTS = 235,
269 KEY_BATTERY = 236,
270 KEY_BLUETOOTH = 237,
271 KEY_WLAN = 238,
272 KEY_UWB = 239,
273 KEY_UNKNOWN = 240,
274 KEY_VIDEO_NEXT = 241,
275 KEY_VIDEO_PREV = 242,
276 KEY_BRIGHTNESS_CYCLE = 243,
277 KEY_BRIGHTNESS_AUTO = 244,
278 KEY_DISPLAY_OFF = 245,
279 KEY_WWAN = 246,
280 KEY_RFKILL = 247,
281 KEY_MICMUTE = 248,
282 BTN_0 = 0x100,
283 BTN_1 = 0x101,
284 BTN_2 = 0x102,
285 BTN_3 = 0x103,
286 BTN_4 = 0x104,
287 BTN_5 = 0x105,
288 BTN_6 = 0x106,
289 BTN_7 = 0x107,
290 BTN_8 = 0x108,
291 BTN_9 = 0x109,
292 BTN_LEFT = 0x110,
293 BTN_RIGHT = 0x111,
294 BTN_MIDDLE = 0x112,
295 BTN_SIDE = 0x113,
296 BTN_EXTRA = 0x114,
297 BTN_FORWARD = 0x115,
298 BTN_BACK = 0x116,
299 BTN_TASK = 0x117,
300 BTN_TRIGGER = 0x120,
301 BTN_THUMB = 0x121,
302 BTN_THUMB2 = 0x122,
303 BTN_TOP = 0x123,
304 BTN_TOP2 = 0x124,
305 BTN_PINKIE = 0x125,
306 BTN_BASE = 0x126,
307 BTN_BASE2 = 0x127,
308 BTN_BASE3 = 0x128,
309 BTN_BASE4 = 0x129,
310 BTN_BASE5 = 0x12a,
311 BTN_BASE6 = 0x12b,
312 BTN_DEAD = 0x12f,
313 BTN_SOUTH = 0x130,
314 BTN_EAST = 0x131,
315 BTN_C = 0x132,
316 BTN_NORTH = 0x133,
317 BTN_WEST = 0x134,
318 BTN_Z = 0x135,
319 BTN_TL = 0x136,
320 BTN_TR = 0x137,
321 BTN_TL2 = 0x138,
322 BTN_TR2 = 0x139,
323 BTN_SELECT = 0x13a,
324 BTN_START = 0x13b,
325 BTN_MODE = 0x13c,
326 BTN_THUMBL = 0x13d,
327 BTN_THUMBR = 0x13e,
328 BTN_TOOL_PEN = 0x140,
329 BTN_TOOL_RUBBER = 0x141,
330 BTN_TOOL_BRUSH = 0x142,
331 BTN_TOOL_PENCIL = 0x143,
332 BTN_TOOL_AIRBRUSH = 0x144,
333 BTN_TOOL_FINGER = 0x145,
334 BTN_TOOL_MOUSE = 0x146,
335 BTN_TOOL_LENS = 0x147,
336 BTN_TOOL_QUINTTAP = 0x148, BTN_TOUCH = 0x14a,
338 BTN_STYLUS = 0x14b,
339 BTN_STYLUS2 = 0x14c,
340 BTN_TOOL_DOUBLETAP = 0x14d,
341 BTN_TOOL_TRIPLETAP = 0x14e,
342 BTN_TOOL_QUADTAP = 0x14f, BTN_GEAR_DOWN = 0x150,
344 BTN_GEAR_UP = 0x151,
345 KEY_OK = 0x160,
346 KEY_SELECT = 0x161,
347 KEY_GOTO = 0x162,
348 KEY_CLEAR = 0x163,
349 KEY_POWER2 = 0x164,
350 KEY_OPTION = 0x165,
351 KEY_INFO = 0x166, KEY_TIME = 0x167,
353 KEY_VENDOR = 0x168,
354 KEY_ARCHIVE = 0x169,
355 KEY_PROGRAM = 0x16a, KEY_CHANNEL = 0x16b,
357 KEY_FAVORITES = 0x16c,
358 KEY_EPG = 0x16d,
359 KEY_PVR = 0x16e, KEY_MHP = 0x16f,
361 KEY_LANGUAGE = 0x170,
362 KEY_TITLE = 0x171,
363 KEY_SUBTITLE = 0x172,
364 KEY_ANGLE = 0x173,
365 KEY_ZOOM = 0x174,
366 KEY_FULL_SCREEN = 0x174,
367 KEY_MODE = 0x175,
368 KEY_KEYBOARD = 0x176,
369 KEY_SCREEN = 0x177,
370 KEY_PC = 0x178, KEY_TV = 0x179, KEY_TV2 = 0x17a, KEY_VCR = 0x17b, KEY_VCR2 = 0x17c, KEY_SAT = 0x17d, KEY_SAT2 = 0x17e,
377 KEY_CD = 0x17f, KEY_TAPE = 0x180, KEY_RADIO = 0x181,
380 KEY_TUNER = 0x182, KEY_PLAYER = 0x183,
382 KEY_TEXT = 0x184,
383 KEY_DVD = 0x185, KEY_AUX = 0x186,
385 KEY_MP3 = 0x187,
386 KEY_AUDIO = 0x188, KEY_VIDEO = 0x189, KEY_DIRECTORY = 0x18a,
389 KEY_LIST = 0x18b,
390 KEY_MEMO = 0x18c, KEY_CALENDAR = 0x18d,
392 KEY_RED = 0x18e,
393 KEY_GREEN = 0x18f,
394 KEY_YELLOW = 0x190,
395 KEY_BLUE = 0x191,
396 KEY_CHANNELUP = 0x192, KEY_CHANNELDOWN = 0x193, KEY_FIRST = 0x194,
399 KEY_LAST = 0x195, KEY_AB = 0x196,
401 KEY_NEXT = 0x197,
402 KEY_RESTART = 0x198,
403 KEY_SLOW = 0x199,
404 KEY_SHUFFLE = 0x19a,
405 KEY_BREAK = 0x19b,
406 KEY_PREVIOUS = 0x19c,
407 KEY_DIGITS = 0x19d,
408 KEY_TEEN = 0x19e,
409 KEY_TWEN = 0x19f,
410 KEY_VIDEOPHONE = 0x1a0, KEY_GAMES = 0x1a1, KEY_ZOOMIN = 0x1a2, KEY_ZOOMOUT = 0x1a3, KEY_ZOOMRESET = 0x1a4, KEY_WORDPROCESSOR = 0x1a5, KEY_EDITOR = 0x1a6, KEY_SPREADSHEET = 0x1a7, KEY_GRAPHICSEDITOR = 0x1a8, KEY_PRESENTATION = 0x1a9, KEY_DATABASE = 0x1aa, KEY_NEWS = 0x1ab, KEY_VOICEMAIL = 0x1ac, KEY_ADDRESSBOOK = 0x1ad, KEY_MESSENGER = 0x1ae, KEY_DISPLAYTOGGLE = 0x1af, KEY_SPELLCHECK = 0x1b0, KEY_LOGOFF = 0x1b1, KEY_DOLLAR = 0x1b2,
429 KEY_EURO = 0x1b3,
430 KEY_FRAMEBACK = 0x1b4, KEY_FRAMEFORWARD = 0x1b5,
432 KEY_CONTEXT_MENU = 0x1b6, KEY_MEDIA_REPEAT = 0x1b7, KEY_10CHANNELSUP = 0x1b8, KEY_10CHANNELSDOWN = 0x1b9, KEY_IMAGES = 0x1ba, KEY_DEL_EOL = 0x1c0,
438 KEY_DEL_EOS = 0x1c1,
439 KEY_INS_LINE = 0x1c2,
440 KEY_DEL_LINE = 0x1c3,
441 KEY_FN = 0x1d0,
442 KEY_FN_ESC = 0x1d1,
443 KEY_FN_F1 = 0x1d2,
444 KEY_FN_F2 = 0x1d3,
445 KEY_FN_F3 = 0x1d4,
446 KEY_FN_F4 = 0x1d5,
447 KEY_FN_F5 = 0x1d6,
448 KEY_FN_F6 = 0x1d7,
449 KEY_FN_F7 = 0x1d8,
450 KEY_FN_F8 = 0x1d9,
451 KEY_FN_F9 = 0x1da,
452 KEY_FN_F10 = 0x1db,
453 KEY_FN_F11 = 0x1dc,
454 KEY_FN_F12 = 0x1dd,
455 KEY_FN_1 = 0x1de,
456 KEY_FN_2 = 0x1df,
457 KEY_FN_D = 0x1e0,
458 KEY_FN_E = 0x1e1,
459 KEY_FN_F = 0x1e2,
460 KEY_FN_S = 0x1e3,
461 KEY_FN_B = 0x1e4,
462 KEY_BRL_DOT1 = 0x1f1,
463 KEY_BRL_DOT2 = 0x1f2,
464 KEY_BRL_DOT3 = 0x1f3,
465 KEY_BRL_DOT4 = 0x1f4,
466 KEY_BRL_DOT5 = 0x1f5,
467 KEY_BRL_DOT6 = 0x1f6,
468 KEY_BRL_DOT7 = 0x1f7,
469 KEY_BRL_DOT8 = 0x1f8,
470 KEY_BRL_DOT9 = 0x1f9,
471 KEY_BRL_DOT10 = 0x1fa,
472 KEY_NUMERIC_0 = 0x200, KEY_NUMERIC_1 = 0x201, KEY_NUMERIC_2 = 0x202,
475 KEY_NUMERIC_3 = 0x203,
476 KEY_NUMERIC_4 = 0x204,
477 KEY_NUMERIC_5 = 0x205,
478 KEY_NUMERIC_6 = 0x206,
479 KEY_NUMERIC_7 = 0x207,
480 KEY_NUMERIC_8 = 0x208,
481 KEY_NUMERIC_9 = 0x209,
482 KEY_NUMERIC_STAR = 0x20a,
483 KEY_NUMERIC_POUND = 0x20b,
484 KEY_NUMERIC_A = 0x20c, KEY_NUMERIC_B = 0x20d,
486 KEY_NUMERIC_C = 0x20e,
487 KEY_NUMERIC_D = 0x20f,
488 KEY_CAMERA_FOCUS = 0x210,
489 KEY_WPS_BUTTON = 0x211, KEY_TOUCHPAD_TOGGLE = 0x212, KEY_TOUCHPAD_ON = 0x213,
492 KEY_TOUCHPAD_OFF = 0x214,
493 KEY_CAMERA_ZOOMIN = 0x215,
494 KEY_CAMERA_ZOOMOUT = 0x216,
495 KEY_CAMERA_UP = 0x217,
496 KEY_CAMERA_DOWN = 0x218,
497 KEY_CAMERA_LEFT = 0x219,
498 KEY_CAMERA_RIGHT = 0x21a,
499 KEY_ATTENDANT_ON = 0x21b,
500 KEY_ATTENDANT_OFF = 0x21c,
501 KEY_ATTENDANT_TOGGLE = 0x21d, KEY_LIGHTS_TOGGLE = 0x21e, BTN_DPAD_UP = 0x220,
504 BTN_DPAD_DOWN = 0x221,
505 BTN_DPAD_LEFT = 0x222,
506 BTN_DPAD_RIGHT = 0x223,
507 KEY_ALS_TOGGLE = 0x230, KEY_BUTTONCONFIG = 0x240, KEY_TASKMANAGER = 0x241, KEY_JOURNAL = 0x242, KEY_CONTROLPANEL = 0x243, KEY_APPSELECT = 0x244, KEY_SCREENSAVER = 0x245, KEY_VOICECOMMAND = 0x246, KEY_ASSISTANT = 0x247,
516 KEY_KBD_LAYOUT_NEXT = 0x248,
517 KEY_BRIGHTNESS_MIN = 0x250, KEY_BRIGHTNESS_MAX = 0x251, KEY_KBDINPUTASSIST_PREV = 0x260,
520 KEY_KBDINPUTASSIST_NEXT = 0x261,
521 KEY_KBDINPUTASSIST_PREVGROUP = 0x262,
522 KEY_KBDINPUTASSIST_NEXTGROUP = 0x263,
523 KEY_KBDINPUTASSIST_ACCEPT = 0x264,
524 KEY_KBDINPUTASSIST_CANCEL = 0x265,
525 KEY_RIGHT_UP = 0x266,
526 KEY_RIGHT_DOWN = 0x267,
527 KEY_LEFT_UP = 0x268,
528 KEY_LEFT_DOWN = 0x269,
529 KEY_ROOT_MENU = 0x26a,
530 KEY_MEDIA_TOP_MENU = 0x26b,
531 KEY_NUMERIC_11 = 0x26c,
532 KEY_NUMERIC_12 = 0x26d,
533 KEY_AUDIO_DESC = 0x26e,
534 KEY_3D_MODE = 0x26f,
535 KEY_NEXT_FAVORITE = 0x270,
536 KEY_STOP_RECORD = 0x271,
537 KEY_PAUSE_RECORD = 0x272,
538 KEY_VOD = 0x273, KEY_UNMUTE = 0x274,
540 KEY_FASTREVERSE = 0x275,
541 KEY_SLOWREVERSE = 0x276,
542 KEY_DATA = 0x277,
543 KEY_ONSCREEN_KEYBOARD = 0x278,
544 KEY_PRIVACY_SCREEN_TOGGLE = 0x279,
545 KEY_SELECTIVE_SCREENSHOT = 0x27a,
546 BTN_TRIGGER_HAPPY1 = 0x2c0,
547 BTN_TRIGGER_HAPPY2 = 0x2c1,
548 BTN_TRIGGER_HAPPY3 = 0x2c2,
549 BTN_TRIGGER_HAPPY4 = 0x2c3,
550 BTN_TRIGGER_HAPPY5 = 0x2c4,
551 BTN_TRIGGER_HAPPY6 = 0x2c5,
552 BTN_TRIGGER_HAPPY7 = 0x2c6,
553 BTN_TRIGGER_HAPPY8 = 0x2c7,
554 BTN_TRIGGER_HAPPY9 = 0x2c8,
555 BTN_TRIGGER_HAPPY10 = 0x2c9,
556 BTN_TRIGGER_HAPPY11 = 0x2ca,
557 BTN_TRIGGER_HAPPY12 = 0x2cb,
558 BTN_TRIGGER_HAPPY13 = 0x2cc,
559 BTN_TRIGGER_HAPPY14 = 0x2cd,
560 BTN_TRIGGER_HAPPY15 = 0x2ce,
561 BTN_TRIGGER_HAPPY16 = 0x2cf,
562 BTN_TRIGGER_HAPPY17 = 0x2d0,
563 BTN_TRIGGER_HAPPY18 = 0x2d1,
564 BTN_TRIGGER_HAPPY19 = 0x2d2,
565 BTN_TRIGGER_HAPPY20 = 0x2d3,
566 BTN_TRIGGER_HAPPY21 = 0x2d4,
567 BTN_TRIGGER_HAPPY22 = 0x2d5,
568 BTN_TRIGGER_HAPPY23 = 0x2d6,
569 BTN_TRIGGER_HAPPY24 = 0x2d7,
570 BTN_TRIGGER_HAPPY25 = 0x2d8,
571 BTN_TRIGGER_HAPPY26 = 0x2d9,
572 BTN_TRIGGER_HAPPY27 = 0x2da,
573 BTN_TRIGGER_HAPPY28 = 0x2db,
574 BTN_TRIGGER_HAPPY29 = 0x2dc,
575 BTN_TRIGGER_HAPPY30 = 0x2dd,
576 BTN_TRIGGER_HAPPY31 = 0x2de,
577 BTN_TRIGGER_HAPPY32 = 0x2df,
578 BTN_TRIGGER_HAPPY33 = 0x2e0,
579 BTN_TRIGGER_HAPPY34 = 0x2e1,
580 BTN_TRIGGER_HAPPY35 = 0x2e2,
581 BTN_TRIGGER_HAPPY36 = 0x2e3,
582 BTN_TRIGGER_HAPPY37 = 0x2e4,
583 BTN_TRIGGER_HAPPY38 = 0x2e5,
584 BTN_TRIGGER_HAPPY39 = 0x2e6,
585 BTN_TRIGGER_HAPPY40 = 0x2e7,
586);
587
588#[test]
589fn from_str() {
590 use std::str::FromStr;
591
592 assert_eq!(Key::from_str("KEY_A"), Ok(Key::KEY_A));
593 assert!(Key::from_str("KEY_FOOBAR").is_err());
594}