gravel_core/hotkeys/
structs.rs1use enumflags2::{BitFlags, bitflags};
2
3#[derive(Debug, PartialEq, Eq)]
4pub struct ParsedBinding {
5 pub modifiers: BitFlags<Modifier>,
6 pub key: Key,
7}
8
9#[bitflags]
10#[repr(u8)]
11#[derive(Copy, Clone, Debug, PartialEq, Eq)]
12#[expect(clippy::use_self, reason = "inside bitflags macro expansion")]
13pub enum Modifier {
14 Alt,
15 Control,
16 Shift,
17 Super,
18}
19
20#[derive(Copy, Clone, Debug, PartialEq, Eq)]
21pub enum Key {
22 A,
23 B,
24 C,
25 D,
26 E,
27 F,
28 G,
29 H,
30 I,
31 J,
32 K,
33 L,
34 M,
35 N,
36 O,
37 P,
38 Q,
39 R,
40 S,
41 T,
42 U,
43 V,
44 W,
45 X,
46 Y,
47 Z,
48 Backspace,
49 Tab,
50 Enter,
51 CapsLock,
52 Escape,
53 Space,
54 PageUp,
55 PageDown,
56 End,
57 Home,
58 Left,
59 Right,
60 Up,
61 Down,
62 PrintScreen,
63 Insert,
64 Delete,
65}