1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
4pub struct Pixel {
5 pub r: u8,
6 pub g: u8,
7 pub b: u8,
8}
9
10#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
11pub struct Point {
12 pub x: i32,
13 pub y: i32,
14}
15
16#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
17pub struct Resolution {
18 pub width: u32,
19 pub height: u32,
20}
21
22#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
23pub struct Modifiers {
24 pub shift: bool,
25 pub ctrl: bool,
26 pub alt: bool,
27 pub win: bool,
28}
29
30#[derive(Debug, Clone, Deserialize, Serialize)]
31pub struct WindowInfo {
32 pub title: String,
33 pub process: String,
34 pub x: i32,
35 pub y: i32,
36 pub width: i32,
37 pub height: i32,
38}
39
40#[derive(Debug, Clone)]
41pub struct InputState {
42 pub keys: Vec<String>,
43 pub modifiers: Modifiers,
44}