pub struct StandardRunner<CS> { /* private fields */ }Expand description
A standard runner that processes events sequentially in the order they were fired.
This runner executes the core simulation cycle (Source phase, Event phase)
in a deterministic, serial fashion. If the skippable option is enabled,
the simulation skips time periods where no events occur, ensuring efficient
utilization of computational resources.
§Deterministic Execution
As long as the implementations of Model, Source, and Hook are deterministic,
simulations executed through this runner will demonstrate reproducible,
deterministic behavior.
Implementations§
Source§impl<CS> StandardRunner<CS>
impl<CS> StandardRunner<CS>
Sourcepub fn new_with_continue_strategy(
skippable: bool,
continue_strategy: CS,
) -> Self
pub fn new_with_continue_strategy( skippable: bool, continue_strategy: CS, ) -> Self
Creates a new StandardRunner with a custom ContinueStrategy.
Trait Implementations§
Source§impl<CS: Clone> Clone for StandardRunner<CS>
impl<CS: Clone> Clone for StandardRunner<CS>
Source§fn clone(&self) -> StandardRunner<CS>
fn clone(&self) -> StandardRunner<CS>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<E, M: Model<E>, CS: ContinueStrategy<E, M, ()>> Runner<E, M, CS> for StandardRunner<CS>
impl<E, M: Model<E>, CS: ContinueStrategy<E, M, ()>> Runner<E, M, CS> for StandardRunner<CS>
Source§fn run<F>(
&mut self,
engine: Engine<E, M>,
model: M,
should_stop: F,
) -> SimulationResult<M, CS::Err>
fn run<F>( &mut self, engine: Engine<E, M>, model: M, should_stop: F, ) -> SimulationResult<M, CS::Err>
The core, low-level method for driving the simulation. Read more
Source§fn run_playback<F>(
&mut self,
engine: Engine<E, M>,
model: M,
duration: Duration,
should_stop: F,
) -> SimulationResult<M, CS::Err>
fn run_playback<F>( &mut self, engine: Engine<E, M>, model: M, duration: Duration, should_stop: F, ) -> SimulationResult<M, CS::Err>
Advances the simulation while inserting a specified delay between ticks. Read more
Source§fn run_do_ticks(
&mut self,
engine: Engine<E, M>,
model: M,
tick_count: TimeTick,
include_zero_tick: bool,
) -> SimulationResult<M, CS::Err>
fn run_do_ticks( &mut self, engine: Engine<E, M>, model: M, tick_count: TimeTick, include_zero_tick: bool, ) -> SimulationResult<M, CS::Err>
Advances the simulation until a specific tick count is reached. Read more
Source§fn run_until_idle(
&mut self,
engine: Engine<E, M>,
model: M,
) -> SimulationResult<M, CS::Err>
fn run_until_idle( &mut self, engine: Engine<E, M>, model: M, ) -> SimulationResult<M, CS::Err>
Automatically advances the simulation until the event queue is exhausted (idle).
Source§fn run_until_model_condition<F>(
&mut self,
engine: Engine<E, M>,
model: M,
should_stop_model_condition: F,
) -> SimulationResult<M, CS::Err>
fn run_until_model_condition<F>( &mut self, engine: Engine<E, M>, model: M, should_stop_model_condition: F, ) -> SimulationResult<M, CS::Err>
Advances the simulation until the model’s internal state satisfies a condition. Read more
Source§fn run_batch_parallel<MF, EF, F>(
&self,
count: usize,
engine_builder: EF,
model_builder: MF,
should_stop: F,
) -> Vec<SimulationResult<M, CS::Err>> ⓘ
fn run_batch_parallel<MF, EF, F>( &self, count: usize, engine_builder: EF, model_builder: MF, should_stop: F, ) -> Vec<SimulationResult<M, CS::Err>> ⓘ
Executes multiple simulation trials in parallel across multiple CPU cores. Read more
Auto Trait Implementations§
impl<CS> Freeze for StandardRunner<CS>where
CS: Freeze,
impl<CS> RefUnwindSafe for StandardRunner<CS>where
CS: RefUnwindSafe,
impl<CS> Send for StandardRunner<CS>where
CS: Send,
impl<CS> Sync for StandardRunner<CS>where
CS: Sync,
impl<CS> Unpin for StandardRunner<CS>where
CS: Unpin,
impl<CS> UnsafeUnpin for StandardRunner<CS>where
CS: UnsafeUnpin,
impl<CS> UnwindSafe for StandardRunner<CS>where
CS: 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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