pub struct CommandReplayState { /* private fields */ }Expand description
Per-command replay state: the retained snapshot (previous stable form of the recording) and the segments carved out of it. This is the double buffer sol’s plan sanctions — previous and current forms coexist only for comparison.
Implementations§
Source§impl CommandReplayState
impl CommandReplayState
pub fn segments(&self) -> &[CommandSegment]
Sourcepub fn stats(&self) -> (u64, u64)
pub fn stats(&self) -> (u64, u64)
Lifetime (deaths, splits) across every verified frame — diagnostics for judging how churn interacts with retention.
Sourcepub fn optimistic_commits(&self) -> u64
pub fn optimistic_commits(&self) -> u64
Frames the pooled fast path fully committed (0 without an executor).
Sourcepub fn prefix_commits(&self) -> u64
pub fn prefix_commits(&self) -> u64
Frames where the pooled pass committed a non-empty strict prefix of the segments before handing the serial walk the failure point (0 without an executor).
Sourcepub fn collapsed_from_captured(&self) -> bool
pub fn collapsed_from_captured(&self) -> bool
Whether the last Self::advance_pooled collapsed out of an
established capture (the Captured-phase coverage collapse) — the
expensive full-rematerialization frame the stale-transition serve
can replace with the previous frame’s emission. False on every
bootstrap AllDynamic frame: an idle snapshot, a short tape, or a
retirement never had a capture to collapse out of.
Sourcepub fn advance(&mut self, current: &CommandRecording) -> ReplayOutcome
pub fn advance(&mut self, current: &CommandRecording) -> ReplayOutcome
Advances the state machine with this frame’s recording and returns what the frame can retain. Phases mirror the flat-list detector: snapshot on the first sighting, partition into transform-consistent chains on the second, verify per entry from the third on. A structural collapse or coverage erosion re-snapshots; correctness never depends on the detector being right about stability — a wrong guess costs a frame of ordinary rendering.
Sourcepub fn advance_pooled(
&mut self,
current: &CommandRecording,
pool: Option<&dyn VerifyExecutor>,
) -> ReplayOutcome
pub fn advance_pooled( &mut self, current: &CommandRecording, pool: Option<&dyn VerifyExecutor>, ) -> ReplayOutcome
Self::advance with an optional executor that verification fans
its per-segment span matching across. Anchors are located in a
serial phase that uses the exact candidate order of the serial walk;
only the span bodies fan out. A frame where every body matches whole
commits without touching the serial walk; any other frame commits
the segments strictly before the first failure — equal by
construction to what the serial walk produces for them — and runs
the serial split/death/re-snapshot machinery from the failure point
on. The outcome is identical with and without an executor.