1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
//! Engine events and user defined events container.
//!
//! TODO
//!
use std::sync::{Arc, RwLock};
use crate::scene::game_object::GameObject;
use winit::event::Event;
use std::fmt::Display;
#[derive(Debug, Clone)]
pub enum UserEvent<T: 'static + Clone + Send + Sync>{
RebuildSwapchain,
Collision(Arc<RwLock<dyn GameObject>>, Arc<RwLock<dyn GameObject>>),
WinitEvent(Event<'static, Box<UserEvent<T>>>),
UserEvent(T),
None,
}
pub trait Error: Sized + Display {}
impl<T: Sized + Display> Error for T {}