Module keyboard

Source
Expand description

§Keyboard

The keyboard module contains all implementation-related details of keyboard I/O and the key event interface.

§Example

Most applications will interact with the key event interface through its State object.

Pressed and Released events can be retrieved by use of the Keyboard::last_key_events function while held-down keys can be obtained by the Keyboard::get_keys_down function. These can then be pattern-matched to find the type of key as in the following example:

let mut app = App::new();

app.run(|app_state: &mut State, window: &mut Window| {
    for key_event in app_state.keyboard().last_key_events() {
        match key_event {
            KeyEvent::Pressed(Key::Esc) => app_state.stop(),
            KeyEvent::Pressed(Key::Q) => app_state.stop(),
            _ => (),
        }
    }

    for key_down in app_state.keyboard().get_keys_down() {
        match key_down {
            Key::W => state.left_player.direction = -1,
            Key::S => state.left_player.direction = 1,
            Key::O => state.right_player.direction = -1,
            Key::L => state.right_player.direction = 1,
            _ => (),
        }
    }
});

Structs§

Keyboard
An object representing the state of the keyboard.

Enums§

Key
The keys detectable by ruscii.
KeyEvent
Events that are detected for each key.