pub struct Checkpoint {
pub version: u32,
pub session: String,
pub started_at: String,
pub checkpoint_at: String,
pub invocation: u32,
pub phases: Vec<PhaseEntry>,
}Expand description
In-memory checkpoint state — the fold of an append-only
JSONL event stream at logs/<session>/checkpoint.jsonl.
One per session. Per SRD-44a, the on-disk format is the
event log; this struct is what consumers (resume planner,
summary report) see after reading and folding.
Fields§
§version: u32File-format version. 1 until we ship a 2. Each
resume invocation refuses to read a checkpoint whose
version it doesn’t recognise — fail fast over silent
schema drift.
session: StringSession identifier — same string used in
logs/<session>/. The resume CLI’s auto-detect picks
the most-recent session; explicit --resume <id>
names this directly.
started_at: StringRFC 3339 timestamp of session start — first
invocation’s nmbrs run start.
checkpoint_at: StringRFC 3339 timestamp of this flush — updated on every successful write.
invocation: u321-based invocation counter. First nmbrs run is 1;
each --resume increments by 1. Used in session.log
separator lines (--- RESUMED <ts> [#N] ---) and in
post-run summary diagnostics if needed.
phases: Vec<PhaseEntry>One entry per pre-mapped phase. Order matches the scenario tree’s DFS — same order the post-run summary uses, same order the resume planner walks.
Trait Implementations§
Source§impl Clone for Checkpoint
impl Clone for Checkpoint
Source§impl Debug for Checkpoint
impl Debug for Checkpoint
Source§impl<'de> Deserialize<'de> for Checkpoint
impl<'de> Deserialize<'de> for Checkpoint
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Checkpoint
impl RefUnwindSafe for Checkpoint
impl Send for Checkpoint
impl Sync for Checkpoint
impl Unpin for Checkpoint
impl UnsafeUnpin for Checkpoint
impl UnwindSafe for Checkpoint
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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