summaryrefslogtreecommitdiff
path: root/src/press_state.rs
blob: 5136d66cf5eb3dcb1e9f4b3bec1046ae4c8427bb (plain) (blame)
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
use winit::event::ElementState;

/// Denotes whether an event was a press event or a release event.
#[derive(Clone, Copy, PartialEq, Debug)]
pub enum PressState {
    Pressed,
    Released,
}

impl PressState {
    pub fn is_pressed(&self) -> bool {
        *self == Self::Pressed
    }
    pub fn is_released(&self) -> bool {
        *self == Self::Released
    }
}

impl From<ElementState> for PressState {
    fn from(value: ElementState) -> Self {
        match value {
            ElementState::Pressed => PressState::Pressed,
            ElementState::Released => PressState::Released,
        }
    }
}