diff options
Diffstat (limited to 'src/press_state.rs')
-rw-r--r-- | src/press_state.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/press_state.rs b/src/press_state.rs new file mode 100644 index 0000000..5136d66 --- /dev/null +++ b/src/press_state.rs @@ -0,0 +1,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, + } + } +} |