pub struct MicroStepHandler<CTX> { /* private fields */ }Expand description
Controls the micro-step execution phases of the simulation.
This structure owns the simulation state (context) and guarantees phase transitions
in a one-way (disposable) manner. By not implementing Clone, it ensures the safety
of the execution flow at the type-system level.
Implementations§
Source§impl<CTX> MicroStepHandler<CTX>
impl<CTX> MicroStepHandler<CTX>
Sourcepub fn ref_context(&self) -> &CTX
pub fn ref_context(&self) -> &CTX
Returns an immutable reference to the context.
Sourcepub fn ref_mut_context(&mut self) -> &mut CTX
pub fn ref_mut_context(&mut self) -> &mut CTX
Returns a mutable reference to the context.
Source§impl<E, M: Model<E>> MicroStepHandler<ActiveExecutorContext<E, M>>
impl<E, M: Model<E>> MicroStepHandler<ActiveExecutorContext<E, M>>
Sourcepub fn start_source_phase(self, model: &M) -> SourcePhase<E, M>
pub fn start_source_phase(self, model: &M) -> SourcePhase<E, M>
Starts the source execution phase.
Generates a SourcePhase from the current context and invokes the before_source_phase hook.
Source§impl<E, M: Model<E>> MicroStepHandler<SourceContext<E, M>>
impl<E, M: Model<E>> MicroStepHandler<SourceContext<E, M>>
Sourcepub fn to_event_phase(self, model: &M) -> EventPhase<E, M>
pub fn to_event_phase(self, model: &M) -> EventPhase<E, M>
Transitions to the event execution phase.
Invokes the before_event_phase hook, restores the pending source_handler,
and generates an EventPhase.
Source§impl<E, M: Model<E>> MicroStepHandler<EventContext<E, M>>
impl<E, M: Model<E>> MicroStepHandler<EventContext<E, M>>
Sourcepub fn end_micro_step(self, model: &M) -> MicroStepResult<E, M>
pub fn end_micro_step(self, model: &M) -> MicroStepResult<E, M>
Ends the current micro-step and returns the result (continue or complete).
Checks for remaining executable events or sources within the current tick and constructs the context for the next micro-step if necessary.
Auto Trait Implementations§
impl<CTX> Freeze for MicroStepHandler<CTX>where
CTX: Freeze,
impl<CTX> RefUnwindSafe for MicroStepHandler<CTX>where
CTX: RefUnwindSafe,
impl<CTX> Send for MicroStepHandler<CTX>where
CTX: Send,
impl<CTX> Sync for MicroStepHandler<CTX>where
CTX: Sync,
impl<CTX> Unpin for MicroStepHandler<CTX>where
CTX: Unpin,
impl<CTX> UnsafeUnpin for MicroStepHandler<CTX>where
CTX: UnsafeUnpin,
impl<CTX> UnwindSafe for MicroStepHandler<CTX>where
CTX: UnwindSafe,
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> 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