pub struct EvidenceSnapshots {
pub resize: Option<ResizeDecisionSnapshot>,
pub diff: Option<DiffDecisionSnapshot>,
pub budget: Option<BudgetDecisionSnapshot>,
pub summary: ResizeEvidenceSummary,
pub timeline: TimelineBuffer,
}Expand description
Cached evidence telemetry snapshots, polled from global singletons on
each tick. Inspector/cockpit panels read these during view() instead of
parsing the JSONL evidence file at render time.
This pull-on-tick pattern avoids file I/O in the render path. The refresh()
method is called once per tick in update(), keeping all evidence data at
most one frame stale.
Fields§
§resize: Option<ResizeDecisionSnapshot>Latest resize coalescer decision (regime, BOCPD evidence, applied size).
diff: Option<DiffDecisionSnapshot>Latest diff-strategy decision (dirty-rows vs full-redraw evidence).
budget: Option<BudgetDecisionSnapshot>Latest frame-budget decision (degradation level, PID output, conformal).
summary: ResizeEvidenceSummaryRendering-ready summary (1mfw3.2.4) — derived from raw snapshots.
timeline: TimelineBufferTimeline of recent adaptive decisions (1mfw3.3.6).
Implementations§
Source§impl EvidenceSnapshots
impl EvidenceSnapshots
Sourcepub fn refresh(&mut self)
pub fn refresh(&mut self)
Poll the global telemetry singletons for the latest snapshots, then update the rendering-ready summary.
Sourcepub fn resize_regime_label(&self) -> &'static str
pub fn resize_regime_label(&self) -> &'static str
Human-readable label for the current resize regime (if available).
Sourcepub fn degradation_label(&self) -> &'static str
pub fn degradation_label(&self) -> &'static str
Current degradation level label (if budget evidence is available).
Sourcepub fn sync_cockpit(&self, cockpit: &mut CockpitState)
pub fn sync_cockpit(&self, cockpit: &mut CockpitState)
Sync evidence snapshots into cockpit data contracts.
Translates raw ftui telemetry types into the cockpit’s rendering-ready contracts so the cockpit overlay can render without understanding internal ftui types.
Trait Implementations§
Source§impl Clone for EvidenceSnapshots
impl Clone for EvidenceSnapshots
Source§fn clone(&self) -> EvidenceSnapshots
fn clone(&self) -> EvidenceSnapshots
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 EvidenceSnapshots
impl Debug for EvidenceSnapshots
Source§impl Default for EvidenceSnapshots
impl Default for EvidenceSnapshots
Source§fn default() -> EvidenceSnapshots
fn default() -> EvidenceSnapshots
Auto Trait Implementations§
impl Freeze for EvidenceSnapshots
impl RefUnwindSafe for EvidenceSnapshots
impl Send for EvidenceSnapshots
impl Sync for EvidenceSnapshots
impl Unpin for EvidenceSnapshots
impl UnsafeUnpin for EvidenceSnapshots
impl UnwindSafe for EvidenceSnapshots
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().