pub trait Model: Diff + Message {
type PlayerId: Message + Clone;
type Message: Message;
type Event: Message + Clone;
const TICKS_PER_SECOND: f32;
// Required methods
fn new_player(&mut self, events: &mut Vec<Self::Event>) -> Self::PlayerId;
fn drop_player(
&mut self,
events: &mut Vec<Self::Event>,
player_id: &Self::PlayerId,
);
fn handle_message(
&mut self,
events: &mut Vec<Self::Event>,
player_id: &Self::PlayerId,
message: Self::Message,
) -> Vec<Self::Event>;
fn tick(&mut self, events: &mut Vec<Self::Event>);
}Required Associated Constants§
const TICKS_PER_SECOND: f32
Required Associated Types§
Required Methods§
fn new_player(&mut self, events: &mut Vec<Self::Event>) -> Self::PlayerId
fn drop_player( &mut self, events: &mut Vec<Self::Event>, player_id: &Self::PlayerId, )
fn handle_message( &mut self, events: &mut Vec<Self::Event>, player_id: &Self::PlayerId, message: Self::Message, ) -> Vec<Self::Event>
fn tick(&mut self, events: &mut Vec<Self::Event>)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.