pub trait Keyboard {
// Required methods
fn press(&self, key: KeyboardKey) -> bool;
fn release(&self, key: KeyboardKey) -> bool;
fn is_pressed(&self, key: KeyboardKey) -> bool;
// Provided methods
fn press_all(&self, keys: KeyboardKeys) -> Vec<bool> { ... }
fn release_all(&self, keys: KeyboardKeys) -> Vec<bool> { ... }
fn is_pressed_all(&self, keys: KeyboardKeys) -> Vec<bool> { ... }
}