Model

Trait Model 

Source
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§

Required Associated Types§

Required Methods§

Source

fn new_player(&mut self, events: &mut Vec<Self::Event>) -> Self::PlayerId

Source

fn drop_player( &mut self, events: &mut Vec<Self::Event>, player_id: &Self::PlayerId, )

Source

fn handle_message( &mut self, events: &mut Vec<Self::Event>, player_id: &Self::PlayerId, message: Self::Message, ) -> Vec<Self::Event>

Source

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.

Implementors§