pub trait CuRecordedReplayApplication<S: SectionStorage, L: UnifiedLogWrite<S> + 'static>: CuSimApplication<S, L> {
type RecordedDataSet: CopperListTuple;
// Required method
fn replay_recorded_copperlist(
&mut self,
clock_mock: &RobotClockMock,
copperlist: &CopperList<Self::RecordedDataSet>,
keyframe: Option<&KeyFrame>,
) -> CuResult<()>;
}Expand description
Simulation-enabled applications that can replay a recorded CopperList verbatim.
This is the exact-output replay primitive used by deterministic re-sim flows: task outputs and bridge receives are overridden from the recorded CopperList, bridge sends are skipped, and an optional recorded keyframe can be injected verbatim when the current CL is expected to capture one.
Required Associated Types§
Sourcetype RecordedDataSet: CopperListTuple
type RecordedDataSet: CopperListTuple
The generated recorded CopperList payload set for this application.
Required Methods§
Sourcefn replay_recorded_copperlist(
&mut self,
clock_mock: &RobotClockMock,
copperlist: &CopperList<Self::RecordedDataSet>,
keyframe: Option<&KeyFrame>,
) -> CuResult<()>
fn replay_recorded_copperlist( &mut self, clock_mock: &RobotClockMock, copperlist: &CopperList<Self::RecordedDataSet>, keyframe: Option<&KeyFrame>, ) -> CuResult<()>
Replay one recorded CopperList exactly as logged.
Generated implementations validate continuity, drain prior asynchronous
output, and align the allocator to the recorded id before executing the
captured-output callback. This is an offline operation and may wait for
logging workers; it is not a real-time task-path API. A matching keyframe
permits a jump across missing history and preserves its recorded timing.
Call CuSimApplication::restore_keyframe separately when restoring task
state at that boundary.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".