1
0
Fork 0
forked from wry/wry
wry/i4config/src/keyboard/mod.rs
2022-02-15 22:53:12 +01:00

40 lines
849 B
Rust

use crate::keyboard::mods::Modifiers;
use crate::keyboard::syms::KeySym;
use bincode::{Decode, Encode};
use std::ops::{BitOr, BitOrAssign};
pub mod keymap;
pub mod mods;
pub mod syms;
#[derive(Encode, Decode, Copy, Clone, Eq, PartialEq, Hash)]
pub struct ModifiedKeySym {
pub mods: Modifiers,
pub sym: KeySym,
}
impl From<KeySym> for ModifiedKeySym {
fn from(sym: KeySym) -> Self {
Self {
mods: Modifiers(0),
sym,
}
}
}
impl BitOr<Modifiers> for ModifiedKeySym {
type Output = ModifiedKeySym;
fn bitor(self, rhs: Modifiers) -> Self::Output {
ModifiedKeySym {
mods: self.mods | rhs,
sym: self.sym,
}
}
}
impl BitOrAssign<Modifiers> for ModifiedKeySym {
fn bitor_assign(&mut self, rhs: Modifiers) {
self.mods |= rhs;
}
}