pub struct Replayer<C = RoundRobinComposition> { /* private fields */ }Expand description
Owns one replay execution: canonical spec, engine construction, and the selected placement/scaling composition.
Implementations§
Source§impl Replayer<RoundRobinComposition>
impl Replayer<RoundRobinComposition>
pub fn new(spec: ReplaySpec, factory: ReplayEngineFactory) -> ReplayResult<Self>
Sourcepub fn run_with_artifacts(
self,
visibility: ReplayArtifactKvEventVisibility,
) -> ReplayResult<(ReplayReport, ReplayArtifacts)>
pub fn run_with_artifacts( self, visibility: ReplayArtifactKvEventVisibility, ) -> ReplayResult<(ReplayReport, ReplayArtifacts)>
Run a fixed, aggregated single-worker replay and retain detailed request/output/native-KV observations from the same Replayer-owned aggregated runtime that produces the normal report.
This contract intentionally targets one worker artifact. Multi-worker, scaling, and disaggregated runs should consume the normal report and placement/scaling observation contracts instead of creating a second scheduler loop solely for artifact generation.
Source§impl<C: ReplayComposition> Replayer<C>
impl<C: ReplayComposition> Replayer<C>
pub fn with_composition( spec: ReplaySpec, factory: ReplayEngineFactory, composition: C, ) -> ReplayResult<Self>
Sourcepub fn with_capture_options(self, options: ReplayCaptureOptions) -> Self
pub fn with_capture_options(self, options: ReplayCaptureOptions) -> Self
Configure detailed capture and canonical determinism for this run.
Sourcepub fn with_telemetry_observer(
self,
sample_interval_ms: f64,
observer: Box<dyn ReplayTelemetryObserver>,
) -> ReplayResult<Self>
pub fn with_telemetry_observer( self, sample_interval_ms: f64, observer: Box<dyn ReplayTelemetryObserver>, ) -> ReplayResult<Self>
Attach a policy-neutral observer sampled at a fixed virtual-time interval. Telemetry remains disabled unless this method is called.
pub fn run(self) -> ReplayResult<ReplayReport>
Auto Trait Implementations§
impl<C = RoundRobinComposition> !RefUnwindSafe for Replayer<C>
impl<C = RoundRobinComposition> !Sync for Replayer<C>
impl<C = RoundRobinComposition> !UnwindSafe for Replayer<C>
impl<C> Freeze for Replayer<C>where
C: Freeze,
impl<C> Send for Replayer<C>where
C: Send,
impl<C> Unpin for Replayer<C>where
C: Unpin,
impl<C> UnsafeUnpin for Replayer<C>where
C: UnsafeUnpin,
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