Struct otter_api_tests::InstanceGuard
source · [−]pub struct InstanceGuard<'g> {
pub c: MutexGuard<'g, RawMutex, InstanceContainer>,
pub gref: InstanceRef,
}Fields
c: MutexGuard<'g, RawMutex, InstanceContainer>gref: InstanceRefImplementations
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 Nones 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