2023-07-16 04:39:54 +00:00
|
|
|
use std::{any::Any, collections::VecDeque};
|
|
|
|
|
|
|
|
use winit::event::WindowEvent;
|
|
|
|
|
|
|
|
pub mod window_state;
|
|
|
|
pub use window_state::*;
|
|
|
|
|
2023-07-19 05:18:16 +00:00
|
|
|
pub mod events;
|
|
|
|
pub use events::*;
|
|
|
|
|
2023-07-16 04:39:54 +00:00
|
|
|
pub trait Resource: Send + Sync + 'static {
|
|
|
|
fn as_any(&self) -> &dyn Any;
|
|
|
|
fn as_any_mut(&mut self) -> &mut dyn Any;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Resource for WindowEvent<'static> {
|
|
|
|
fn as_any(&self) -> &dyn Any {
|
|
|
|
self
|
|
|
|
}
|
|
|
|
|
|
|
|
fn as_any_mut(&mut self) -> &mut dyn Any {
|
|
|
|
self
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<T: Sync + Send + 'static> Resource for VecDeque<T> {
|
|
|
|
fn as_any(&self) -> &dyn Any {
|
|
|
|
self
|
|
|
|
}
|
|
|
|
|
|
|
|
fn as_any_mut(&mut self) -> &mut dyn Any {
|
|
|
|
self
|
|
|
|
}
|
|
|
|
}
|