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", so this trait is not object safe.