pub struct RefreshLedger {
pub version: u32,
pub started_at_ms: i64,
pub completed_at_ms: i64,
pub total_duration_ms: u64,
pub full_rebuild: bool,
pub corpus_family: String,
pub phases: Vec<PhaseRecord>,
pub equivalence: EquivalenceArtifacts,
pub tags: BTreeMap<String, String>,
}Expand description
Complete evidence ledger for a single stale-refresh cycle.
Captures phase-exact timings, item counts, and correctness artifacts. Serializable to JSON for benchmark comparison and CI artifact retention.
Fields§
§version: u32Ledger format version.
started_at_ms: i64Unix timestamp (ms) when the refresh started.
completed_at_ms: i64Unix timestamp (ms) when the refresh completed.
total_duration_ms: u64Total wall-clock duration (ms).
full_rebuild: boolWhether this was a full rebuild or incremental refresh.
corpus_family: StringCorpus family identifier (for benchmark categorization).
phases: Vec<PhaseRecord>Per-phase records in pipeline order.
equivalence: EquivalenceArtifactsCorrectness artifacts captured after the refresh.
Free-form tags for filtering and grouping.
Implementations§
Source§impl RefreshLedger
impl RefreshLedger
Sourcepub fn start(corpus_family: &str, full_rebuild: bool) -> LedgerBuilder
pub fn start(corpus_family: &str, full_rebuild: bool) -> LedgerBuilder
Start a new ledger with the given corpus family.
Sourcepub fn phase(&self, phase: RefreshPhase) -> Option<&PhaseRecord>
pub fn phase(&self, phase: RefreshPhase) -> Option<&PhaseRecord>
Get the phase record for a specific phase (if it ran).
Sourcepub fn total_items_processed(&self) -> u64
pub fn total_items_processed(&self) -> u64
Total items processed across all phases.
Sourcepub fn total_errors(&self) -> u64
pub fn total_errors(&self) -> u64
Total errors across all phases.
Sourcepub fn all_phases_succeeded(&self) -> bool
pub fn all_phases_succeeded(&self) -> bool
Whether all phases succeeded.
Sourcepub fn failed_phases(&self) -> Vec<&PhaseRecord>
pub fn failed_phases(&self) -> Vec<&PhaseRecord>
Phases that failed.
Sourcepub fn duration_breakdown(&self) -> BTreeMap<String, u64>
pub fn duration_breakdown(&self) -> BTreeMap<String, u64>
Duration breakdown: phase name → ms.
Sourcepub fn readiness_milestones(&self) -> RefreshReadinessMilestones
pub fn readiness_milestones(&self) -> RefreshReadinessMilestones
Derive the user-facing stale-refresh readiness milestones that robot surfaces and benchmark gates need to compare across runs.
Source§impl RefreshLedger
impl RefreshLedger
Sourcepub fn evidence_summary(&self) -> RefreshLedgerEvidence
pub fn evidence_summary(&self) -> RefreshLedgerEvidence
Compute the derived evidence summary for benchmark comparison and
operator dashboards. See RefreshLedgerEvidence for shape +
invariants. This is pure (no I/O) and runs in O(phases).
Trait Implementations§
Source§impl Clone for RefreshLedger
impl Clone for RefreshLedger
Source§fn clone(&self) -> RefreshLedger
fn clone(&self) -> RefreshLedger
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RefreshLedger
impl Debug for RefreshLedger
Source§impl Default for RefreshLedger
impl Default for RefreshLedger
Source§impl<'de> Deserialize<'de> for RefreshLedger
impl<'de> Deserialize<'de> for RefreshLedger
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 RefreshLedger
impl RefUnwindSafe for RefreshLedger
impl Send for RefreshLedger
impl Sync for RefreshLedger
impl Unpin for RefreshLedger
impl UnsafeUnpin for RefreshLedger
impl UnwindSafe for RefreshLedger
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>, which can then be
downcast into Box<dyn 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>, which 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> 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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().