Struct otter::global::InstanceGuard
source · [−]pub struct InstanceGuard<'g> {
pub c: MutexGuard<'g, InstanceContainer>,
pub gref: InstanceRef,
}
Fields
c: MutexGuard<'g, InstanceContainer>
gref: InstanceRef
Implementations
sourceimpl InstanceGuard<'_>
impl InstanceGuard<'_>
sourcepub fn fastsplit_split<I>(
&mut self,
player: PlayerId,
tpiece: PieceId,
_: ShowUnocculted,
tpc_new_z: ShouldSetZLevel,
implementation: I
) -> Result<UpdateFromOpComplex, ApiPieceOpError> where
I: FnOnce(&IOccults, &GOccults, &GPlayer, &mut GPiece, &IPiece, &mut GPiece) -> Result<UpdateFromOpComplex, ApiPieceOpError>,
pub fn fastsplit_split<I>(
&mut self,
player: PlayerId,
tpiece: PieceId,
_: ShowUnocculted,
tpc_new_z: ShouldSetZLevel,
implementation: I
) -> Result<UpdateFromOpComplex, ApiPieceOpError> where
I: FnOnce(&IOccults, &GOccults, &GPlayer, &mut GPiece, &IPiece, &mut GPiece) -> Result<UpdateFromOpComplex, ApiPieceOpError>,
The new piece will be below the old one
pub fn fastsplit_delete(
&mut self,
piece: PieceId,
_proof_that_caller_handles_logging: &Vec<LogEntry>
) -> Result<(PieceUpdateOp<(), ()>, UnpreparedUpdates), IE>
sourceimpl<'ig> InstanceGuard<'ig>
impl<'ig> InstanceGuard<'ig>
sourcepub fn delete_piece<H, T>(
&mut self,
modperm: ModifyingPieces,
to_permute: &mut ToRecalculate,
piece: PieceId,
hook: H
) -> Result<(T, PieceUpdateOp<(), ()>, UnpreparedUpdates), IE> where
H: FnOnce(&IOccults, &GOccults, Option<&IPiece>, Option<&GPiece>) -> T,
pub fn delete_piece<H, T>(
&mut self,
modperm: ModifyingPieces,
to_permute: &mut ToRecalculate,
piece: PieceId,
hook: H
) -> Result<(T, PieceUpdateOp<(), ()>, UnpreparedUpdates), IE> where
H: FnOnce(&IOccults, &GOccults, Option<&IPiece>, Option<&GPiece>) -> T,
Core of piece deletion
Caller is completely responsible for the necessary log entries.
Idempotent (so does not detect if the piece didn’t exist,
other than by passing None
s to the callback.
sourcepub fn player_new(
&mut self,
gnew: GPlayer,
inew: IPlayer,
account: Arc<AccountName>,
logentry: LogEntry
) -> Result<(PlayerId, PreparedUpdateEntry, LogEntry), MgmtError>
pub fn player_new(
&mut self,
gnew: GPlayer,
inew: IPlayer,
account: Arc<AccountName>,
logentry: LogEntry
) -> Result<(PlayerId, PreparedUpdateEntry, LogEntry), MgmtError>
caller is responsible for logging; threading it through proves the caller has a log entry.
pub fn check_new_nick(&mut self, new_nick: &str) -> Result<(), MgmtError>
pub fn prepare_set_player_update(
&self,
player: PlayerId
) -> Result<PreparedUpdateEntry, IE>
pub fn remove_clients(
&mut self,
players: &HashSet<PlayerId>,
signal: ErrorSignaledViaUpdate<PUE_P, String>
)
pub fn players_remove(
&mut self,
old_players_set: &HashSet<PlayerId>
) -> Result<Vec<(Option<GPlayer>, Option<IPlayer>, PreparedUpdateEntry)>, InternalError>
pub fn invalidate_tokens(
&mut self,
player: PlayerId
) -> Result<(), InternalError>
pub fn player_access_reset(
&mut self,
accounts: &mut AccountsGuard,
player: PlayerId,
auth: Authorisation<AccountName>
) -> Result<AccessTokenReport, MgmtError>
pub fn player_access_redeliver(
&mut self,
accounts: &mut AccountsGuard,
player: PlayerId,
auth: Authorisation<AccountName>
) -> Result<AccessTokenReport, MgmtError>
pub fn modify_pieces(&mut self) -> ModifyingPieces
pub fn modify_pieces_not_necessarily_saving_aux(&mut self) -> ModifyingPieces
sourceimpl InstanceGuard<'_>
impl InstanceGuard<'_>
pub fn save_game_now(&mut self) -> Result<(), InternalError>
pub fn save_aux_now(&mut self) -> Result<(), InternalError>
sourceimpl InstanceGuard<'_>
impl InstanceGuard<'_>
pub fn save_game_later(&mut self)
pub fn save_game_and_aux_later(&mut self)
Methods from Deref<Target = Instance>
pub fn player_info_pane(&self) -> Result<Html, InternalError>
pub fn all_shapelibs(&self) -> AllRegistries<'_>
Trait Implementations
sourceimpl<'g> Debug for InstanceGuard<'g>
impl<'g> Debug for InstanceGuard<'g>
sourceimpl Deref for InstanceGuard<'_>
impl Deref for InstanceGuard<'_>
Auto Trait Implementations
impl<'g> !RefUnwindSafe for InstanceGuard<'g>
impl<'g> !Send for InstanceGuard<'g>
impl<'g> !Sync for InstanceGuard<'g>
impl<'g> Unpin for InstanceGuard<'g>
impl<'g> !UnwindSafe for InstanceGuard<'g>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<A> DynCastExt for A
impl<A> DynCastExt for A
sourcefn dyn_cast<T>(
self
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source> where
A: DynCastExtHelper<T>,
T: ?Sized,
fn dyn_cast<T>(
self
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source> where
A: DynCastExtHelper<T>,
T: ?Sized,
Use this to cast from one trait object type to another. Read more
sourcefn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target where
A: DynCastExtAdvHelper<T, T, Source = <A as DynCastExtAdvHelper<T, T>>::Target>,
T: ?Sized,
fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target where
A: DynCastExtAdvHelper<T, T, Source = <A as DynCastExtAdvHelper<T, T>>::Target>,
T: ?Sized,
Use this to upcast a trait to one of its supertraits. Read more
sourcefn dyn_cast_adv<F, T>(
self
) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source> where
A: DynCastExtAdvHelper<F, T>,
F: ?Sized,
T: ?Sized,
fn dyn_cast_adv<F, T>(
self
) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source> where
A: DynCastExtAdvHelper<F, T>,
F: ?Sized,
T: ?Sized,
sourcefn dyn_cast_with_config<C>(
self
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source> where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
fn dyn_cast_with_config<C>(
self
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source> where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
Use this to cast from one trait object type to another. With this method the type parameter is a config type that uniquely specifies which cast should be preformed. Read more