requestty_ui/events/
keys.rs1bitflags::bitflags! {
2 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
4 pub struct KeyModifiers: u8 {
5 #[allow(missing_docs)]
6 const SHIFT = 0b0000_0001;
7 #[allow(missing_docs)]
8 const CONTROL = 0b0000_0010;
9 #[allow(missing_docs)]
10 const ALT = 0b0000_0100;
11 }
12}
13
14#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
16pub struct KeyEvent {
17 pub code: KeyCode,
19 pub modifiers: KeyModifiers,
21}
22
23impl KeyEvent {
24 pub fn new(code: KeyCode, modifiers: KeyModifiers) -> KeyEvent {
26 KeyEvent { code, modifiers }
27 }
28}
29
30impl From<KeyCode> for KeyEvent {
31 fn from(code: KeyCode) -> Self {
32 KeyEvent {
33 code,
34 modifiers: KeyModifiers::empty(),
35 }
36 }
37}
38
39#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
41pub enum KeyCode {
42 Backspace,
44 Enter,
46 Left,
48 Right,
50 Up,
52 Down,
54 Home,
56 End,
58 PageUp,
60 PageDown,
62 Tab,
64 BackTab,
66 Delete,
68 Insert,
70 F(u8),
74 Char(char),
78 Null,
80 Esc,
82}