From 0366675bb36c50353058405c2ef901705550126f Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Sun, 19 Mar 2023 00:48:43 +0100 Subject: [PATCH] Add bitmasks to Modifier enum --- src/button.rs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/button.rs b/src/button.rs index bc066cb..51e5785 100644 --- a/src/button.rs +++ b/src/button.rs @@ -3,16 +3,23 @@ use serde::{Deserialize, Serialize}; use crate::keys::Key; -#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)] +#[repr(u8)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] pub enum Modifier { - LShift, - LCtrl, - LAlt, - LMod, - RShift, - RCtrl, - RAlt, - RMod, + LCtrl = 0x01, + LShift = 0x02, + LAlt = 0x04, + LMod = 0x08, + RCtrl = 0x10, + RShift = 0x20, + RAlt = 0x40, + RMod = 0x80, +} + +impl From for u8 { + fn from(modifier: Modifier) -> Self { + modifier as u8 + } } #[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]