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}