use crate::ecs::{declare_entity, pair}; use crate::ecs::extension::Collector as ExtensionCollector; use crate::ecs::pair::ChildOf; use crate::ecs::phase::Phase; use crate::windowing::PHASE as WINDOWING_PHASE; pub mod keyboard; pub mod mouse; declare_entity! { pub PHASE: (Phase, pair!(ChildOf, { *WINDOWING_PHASE })); } /// Input extension. #[derive(Debug, Default)] pub struct Extension {} impl crate::ecs::extension::Extension for Extension { fn collect(self, mut collector: ExtensionCollector<'_>) { collector.spawn_declared_entity(&PHASE); // TODO: Add input mapping } }