#[non_exhaustive]pub struct Context<'ctx, 'read, H: Host> {
pub tick: Tick,
pub read_ticket: ReadTicket<'ctx>,
pub host: &'ctx H::Read<'read>,
pub attachment: &'ctx H::Attachment,
/* private fields */
}Expand description
Items available to a Behavior during Behavior::step().
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.tick: TickThe time tick that is currently passing, causing this step.
read_ticket: ReadTicket<'ctx>ReadTicket for the universe this behavior is contained in.
host: &'ctx H::Read<'read>The current state of the behavior’s host object.
attachment: &'ctx H::AttachmentAdditional data about “where” the behavior is attached to the host; what part of the host should be affected by the behavior.
Implementations§
Source§impl<'a, H: Host> Context<'a, '_, H>
impl<'a, H: Host> Context<'a, '_, H>
Sourcepub fn waker(&self) -> &'a Waker
pub fn waker(&self) -> &'a Waker
Returns a waker that should be used to signal when the behavior’s
step() should be called again, in the case where it
returns Then::Sleep.
This is precisely analogous to the use of Waker with Future::poll().
Sourcepub fn bind_host(&self, transaction: H::Transaction) -> UniverseTransaction
pub fn bind_host(&self, transaction: H::Transaction) -> UniverseTransaction
Take a transaction applicable to the behavior’s host, and wrap it to become a
UniverseTransaction for the host’s containing universe.
Sourcepub fn replace_self<B: Behavior<H> + 'static>(
&self,
new_behavior: B,
) -> UniverseTransaction
pub fn replace_self<B: Behavior<H> + 'static>( &self, new_behavior: B, ) -> UniverseTransaction
Returns a transaction which will replace this behavior with a new value.
This should be used whenever a behavior wishes to modify itself, to ensure that the modification only takes effect when the behavior’s other effects do.
Trait Implementations§
Auto Trait Implementations§
impl<'ctx, 'read, H> Freeze for Context<'ctx, 'read, H>
impl<'ctx, 'read, H> !RefUnwindSafe for Context<'ctx, 'read, H>
impl<'ctx, 'read, H> !Send for Context<'ctx, 'read, H>
impl<'ctx, 'read, H> !Sync for Context<'ctx, 'read, H>
impl<'ctx, 'read, H> Unpin for Context<'ctx, 'read, H>
impl<'ctx, 'read, H> !UnwindSafe for Context<'ctx, 'read, H>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more