Struct otter_nodejs_tests::InstanceGuard
source · [−]pub struct InstanceGuard<'g> {
pub c: MutexGuard<'g, RawMutex, InstanceContainer>,
pub gref: InstanceRef,
}
Fields
c: MutexGuard<'g, RawMutex, 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<(PieceUpdate, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), ApiPieceOpError> where
I: for<'_, '_, '_, '_, '_, '_> FnOnce(&IOccults, &GOccults, &GPlayer, &mut GPiece, &IPiece, &mut GPiece) -> Result<(PieceUpdate, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), ApiPieceOpError>,
pub fn fastsplit_split<I>(
&mut self,
player: PlayerId,
tpiece: PieceId,
ShowUnocculted,
tpc_new_z: ShouldSetZLevel,
implementation: I
) -> Result<(PieceUpdate, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), ApiPieceOpError> where
I: for<'_, '_, '_, '_, '_, '_> FnOnce(&IOccults, &GOccults, &GPlayer, &mut GPiece, &IPiece, &mut GPiece) -> Result<(PieceUpdate, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), 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, Global>
) -> Result<(PieceUpdateOp<(), ()>, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), InternalError>
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<(), ()>, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), InternalError> where
H: for<'_, '_, '_, '_> 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<(), ()>, Vec<Box<dyn FnOnce(&'r mut PrepareUpdatesBuffer<'_>) + 'static, Global>, Global>), InternalError> where
H: for<'_, '_, '_, '_> 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, InternalError>
pub fn remove_clients(
&mut self,
players: &HashSet<PlayerId, RandomState>,
signal: ErrorSignaledViaUpdate<PreparedUpdateEntry_Piece, String>
)
pub fn players_remove(
&mut self,
old_players_set: &HashSet<PlayerId, RandomState>
) -> Result<Vec<(Option<GPlayer>, Option<IPlayer>, PreparedUpdateEntry), Global>, 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
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
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<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;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<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;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<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;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
fn 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
fn 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
fn 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
impl<A> DynCastExt for A
impl<A> DynCastExt for A
fn 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
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,
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
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,
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,
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>,
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
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more