pub trait GameHandler:
Sized
+ BorshSerialize
+ BorshDeserialize {
type Checkpoint: BorshSerialize + BorshDeserialize;
// Required methods
fn init_state(
effect: &mut Effect,
init_account: InitAccount,
) -> HandleResult<Self>;
fn handle_event(
&mut self,
effect: &mut Effect,
event: Event,
) -> HandleResult<()>;
fn into_checkpoint(self) -> HandleResult<Self::Checkpoint>;
}Required Associated Types§
Required Methods§
Sourcefn init_state(
effect: &mut Effect,
init_account: InitAccount,
) -> HandleResult<Self>
fn init_state( effect: &mut Effect, init_account: InitAccount, ) -> HandleResult<Self>
Initialize handler state with on-chain game account data.
Sourcefn handle_event(
&mut self,
effect: &mut Effect,
event: Event,
) -> HandleResult<()>
fn handle_event( &mut self, effect: &mut Effect, event: Event, ) -> HandleResult<()>
Handle event.
Sourcefn into_checkpoint(self) -> HandleResult<Self::Checkpoint>
fn into_checkpoint(self) -> HandleResult<Self::Checkpoint>
Create checkpoint from current state.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".