Skip to main content

CuRecordedReplayApplication

Trait CuRecordedReplayApplication 

Source
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§

Source

type RecordedDataSet: CopperListTuple

The generated recorded CopperList payload set for this application.

Required Methods§

Source

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".

Implementors§