From 903f880c73ce7ec35e2aa75f664295c7c91db460 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Tue, 16 May 2023 23:40:55 +0200 Subject: [PATCH] Add compose macro button --- src/button.rs | 4 ++++ src/keys.rs | 1 + 2 files changed, 5 insertions(+) diff --git a/src/button.rs b/src/button.rs index d387e85..5cb9cbf 100644 --- a/src/button.rs +++ b/src/button.rs @@ -23,10 +23,12 @@ impl From for u8 { } #[derive(Debug, PartialEq, Eq, Serialize, Deserialize)] +#[non_exhaustive] pub enum Button { Mod(Modifier), Key(Key), ModTap(Key, Modifier), + Compose(Key, Key, Option), NextLayer, PrevLayer, None, @@ -38,6 +40,8 @@ impl Display for Button { Button::Mod(modifier) => Debug::fmt(&modifier, f), Button::Key(key) => write!(f, "{key:?}"), Button::ModTap(key, modifier) => write!(f, "{key:?}/{modifier}"), + Button::Compose(k1, k2, None) => write!(f, "⎄ {k1:?} {k2:?}"), + Button::Compose(k1, k2, Some(k3)) => write!(f, "⎄ {k1:?} {k2:?} {k3:?}"), Button::NextLayer => write!(f, "↘"), Button::PrevLayer => write!(f, "↖"), Button::None => write!(f, "Ø"), diff --git a/src/keys.rs b/src/keys.rs index f173a69..a937707 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -2,6 +2,7 @@ use serde::{Deserialize, Serialize}; #[repr(u8)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[non_exhaustive] // https://usb.org/sites/default/files/hut1_3_0.pdf pub enum Key { A = 0x04,