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)]