1
0
Fork 0
forked from wry/wry
wry/src/keyboard.rs
2025-01-27 10:23:46 +01:00

29 lines
583 B
Rust

use {
crate::utils::vecset::VecSet,
kbvm::Components,
std::{
cell::{Ref, RefCell},
rc::Rc,
},
uapi::OwnedFd,
};
linear_ids!(KeyboardStateIds, KeyboardStateId, u64);
pub struct KeyboardState {
pub id: KeyboardStateId,
pub map: Rc<OwnedFd>,
pub map_len: usize,
pub pressed_keys: VecSet<u32>,
pub mods: Components,
}
pub trait DynKeyboardState {
fn borrow(&self) -> Ref<'_, KeyboardState>;
}
impl DynKeyboardState for RefCell<KeyboardState> {
fn borrow(&self) -> Ref<'_, KeyboardState> {
self.borrow()
}
}