oxygengine_input/
device.rs

1use core::{ecs::Universe, Scalar};
2use std::any::Any;
3
4pub trait InputDevice: Any + Send + Sync {
5    fn name(&self) -> &str;
6    fn on_register(&mut self) {}
7    fn on_unregister(&mut self) {}
8    fn process(&mut self, universe: &mut Universe);
9    fn query_axis(&self, name: &str) -> Option<Scalar>;
10    fn query_trigger(&self, name: &str) -> Option<bool>;
11    fn query_text(&self) -> Option<String>;
12    fn as_any(&self) -> &dyn Any;
13}