pub struct ReplayReport {
pub header: SessionHeader,
pub total_entries: usize,
pub applied: usize,
pub skipped: Vec<(usize, String)>,
pub stopped_at: Option<usize>,
pub not_applied_after_stop: usize,
pub second_session_at: Option<usize>,
pub deterministic: bool,
pub live_fingerprint: Option<String>,
pub matches_live: Option<bool>,
pub state: State,
}Expand description
Everything --replay learned from one recording.
Fields§
§header: SessionHeader§total_entries: usizeEntry lines seen for this session (excludes the header line).
applied: usizeEntries successfully reconstructed and folded through update.
skipped: Vec<(usize, String)>(file line number, reason) for every line that could not be
reconstructed — malformed JSON, or a Msg variant this build doesn’t
know (log written by a newer mermaid).
stopped_at: Option<usize>File line number where the fold stopped because the recorded session
quit (state.should_exit), mirroring the live loop’s exit.
not_applied_after_stop: usizeEntries after the stop line that were parsed but not applied.
second_session_at: Option<usize>Line number of a second SessionHeader if the file holds multiple
appended sessions. Only the first session is replayed.
deterministic: boolTrue when folding the log twice produced byte-identical State
debug representations — the reducer-purity invariant.
live_fingerprint: Option<String>The live session’s final fingerprint, when the recording was sealed
on clean exit. None for crashed sessions and pre-trailer logs.
matches_live: Option<bool>Whether the folded session reproduces the live one: Some(true) =
exact match, Some(false) = diverged (expected when redaction fired
mid-session or the reducer changed since recording), None = no
trailer to compare against.
state: StateFinal state after the fold.
Auto Trait Implementations§
impl Freeze for ReplayReport
impl RefUnwindSafe for ReplayReport
impl Send for ReplayReport
impl Sync for ReplayReport
impl Unpin for ReplayReport
impl UnsafeUnpin for ReplayReport
impl UnwindSafe for ReplayReport
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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