Skip to main content

OpHookThunk

Type Alias OpHookThunk 

Source
pub type OpHookThunk = OpOutcomeThunkGeneric<(PlayerId,), Vec<Box<dyn for<'r> FnOnce(&'r mut PrepareUpdatesBuffer<'_>)>>, InternalError>;

Aliased Type§

pub enum OpHookThunk {
    Immediate(Vec<Box<dyn for<'r> FnOnce(&'r mut PrepareUpdatesBuffer<'_>)>>),
    Reborrow(Box<dyn FnOnce(&mut InstanceGuard<'_>, (PlayerId,)) -> Result<Vec<Box<dyn for<'r> FnOnce(&'r mut PrepareUpdatesBuffer<'_>)>>, InternalError>>),
}

Variants§

§

Immediate(Vec<Box<dyn for<'r> FnOnce(&'r mut PrepareUpdatesBuffer<'_>)>>)

§

Reborrow(Box<dyn FnOnce(&mut InstanceGuard<'_>, (PlayerId,)) -> Result<Vec<Box<dyn for<'r> FnOnce(&'r mut PrepareUpdatesBuffer<'_>)>>, InternalError>>)

Allows an operation full mutable access to the whole Instance.

Use with care! Eg, you might have to call save_game_and_aux_later.

Adding and removing pieces during play (rather than management) is complicated, because we want to avoid having to rewrite the aux. file during routine game saves. fastsplit.rs has machinery that can achieve this.