#[non_exhaustive]pub struct DrainedSnapshotEntry {
pub tag: String,
pub report: FailureDumpReport,
pub stats: Result<Value, MissingStatsReason>,
pub elapsed_ms: Option<u64>,
pub boundary_offset_ms: Option<u64>,
pub step_index: Option<u16>,
}Expand description
Typed shape of one entry drained from the snapshot bridge’s ordered per-tag store. Fields:
tag: snapshot name the report was stored under.report:crate::monitor::dump::FailureDumpReportof the captured guest state.stats: scheduler-side stats JSON or a typedMissingStatsReasonwhen capture happened without a wired stats client.elapsed_ms: optional wall-clock anchor (ms since run-start).step_index: scenario phase index stamped at capture time.Some(idx)for captures stored via the step-aware entry points (crate::scenario::snapshot::SnapshotBridge::capture_with_steporcrate::scenario::snapshot::SnapshotBridge::store_with_stats_and_step);Nonefor fixture-injected captures via the unstamped legacy paths (crate::scenario::snapshot::SnapshotBridge::capture/crate::scenario::snapshot::SnapshotBridge::store/crate::scenario::snapshot::SnapshotBridge::store_with_stats).
Used by crate::scenario::snapshot::SnapshotBridge::drain_ordered_with_stats
and crate::scenario::sample::SampleSeries::from_drained_typed.
#[non_exhaustive] so future additive fields stay
pattern-match-compatible via rest-pattern destructure
(DrainedSnapshotEntry { tag, report, .. }).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.tag: String§report: FailureDumpReport§stats: Result<Value, MissingStatsReason>§elapsed_ms: Option<u64>§boundary_offset_ms: Option<u64>Workload-relative boundary offset (ms) a periodic capture was
scheduled for (boundary_ns - scenario_anchor_ns); None for
non-periodic / on-demand captures. Distinct from elapsed_ms
(run_start-relative fire time). See
crate::scenario::snapshot::SnapshotBridge’s store doc.
step_index: Option<u16>Trait Implementations§
Auto Trait Implementations§
impl Freeze for DrainedSnapshotEntry
impl RefUnwindSafe for DrainedSnapshotEntry
impl Send for DrainedSnapshotEntry
impl Sync for DrainedSnapshotEntry
impl Unpin for DrainedSnapshotEntry
impl UnwindSafe for DrainedSnapshotEntry
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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