interstice_abi/host_calls/input/
mod.rs1pub mod key_code;
2
3use crate::interstice_abi_macros::IntersticeType;
4use key_code::KeyCode;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Deserialize, Serialize, IntersticeType, Clone)]
8pub enum InputEvent {
9 Added {
10 device_id: u32,
11 },
12 Removed {
13 device_id: u32,
14 },
15 MouseMotion {
16 device_id: u32,
17 delta: (f64, f64),
18 },
19 MouseWheel {
20 device_id: u32,
21 delta: (f64, f64),
22 },
23 Motion {
24 device_id: u32,
25 axis_id: u32,
26 value: f64,
27 },
28 Button {
29 device_id: u32,
30 button_id: u32,
31 state: ElementState,
32 },
33
34 Key {
35 device_id: u32,
36 physical_key: PhysicalKey,
37 state: ElementState,
38 },
39}
40
41#[derive(Debug, Deserialize, Serialize, IntersticeType, Clone)]
42pub enum ElementState {
43 Pressed,
44 Released,
45}
46
47#[derive(Debug, Deserialize, Serialize, IntersticeType, Clone)]
48pub enum PhysicalKey {
49 Code(KeyCode),
51 Unidentified(u32),
53}