1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

pub struct FrameInput {
    pub events: Vec<Event>,
    pub elapsed_time: f64,
    pub screen_width: usize,
    pub screen_height: usize
}

#[derive(Debug, Clone, PartialEq)]
pub enum State
{
    Pressed,
    Released
}

#[derive(Debug, Clone, PartialEq)]
pub enum MouseButton {
    Left,
    Right,
    Middle,
}

#[derive(Debug, Clone, PartialEq)]
pub enum Event
{
    MouseClick {
        state: State,
        button: MouseButton,
        position: (f64, f64)
    },
    MouseMotion {
        delta: (f64, f64),
    },
    MouseWheel {
        delta: f64,
    },
    Key {
        state: State,
        kind: String
    },
}