1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use super::compact::Compact; use super::id::RawID; use super::World; pub enum Fate { Live, Die, } pub trait Message: Compact + 'static {} impl<T: Compact + 'static> Message for T {} pub type HandlerFnRef = dyn Fn(*mut(), *const (), &mut World) -> Fate; #[derive(Compact, Clone)] #[repr(C)] pub struct Packet<M: Message> { pub recipient_id: RawID, pub message: M, }