use crate::input::{self, gamepad, keyboard, mouse};
#[derive(PartialEq, Clone, Copy, Debug)]
pub enum Event {
Keyboard(keyboard::Event),
Mouse(mouse::Event),
Gamepad {
id: gamepad::Id,
event: gamepad::Event,
},
}
impl Event {
pub(crate) fn from_input(event: input::Event) -> Option<Event> {
match event {
input::Event::Keyboard(keyboard_event) => {
Some(Event::Keyboard(keyboard_event))
}
input::Event::Mouse(mouse_event) => Some(Event::Mouse(mouse_event)),
input::Event::Gamepad { id, event, .. } => {
Some(Event::Gamepad { id, event })
}
_ => None,
}
}
}