summaryrefslogtreecommitdiff
path: root/src/press_state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/press_state.rs')
-rw-r--r--src/press_state.rs26
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,
+ }
+ }
+}