Skip to main content

BudgetTelemetry

Struct BudgetTelemetry 

Source
pub struct BudgetTelemetry {
Show 20 fields pub schema_version: u16, pub level: DegradationLevel, pub pid_output: f64, pub pid_p: f64, pub pid_i: f64, pub pid_d: f64, pub e_value: f64, pub frames_observed: u32, pub frames_since_change: u32, pub last_decision: BudgetDecision, pub decision_reason: BudgetDecisionReason, pub transition_seq: u64, pub transition_correlation_id: u64, pub frame_time_ms: f64, pub target_ms: f64, pub pid_gate_threshold: f64, pub pid_gate_margin: f64, pub evidence_threshold: f64, pub evidence_margin: f64, pub in_warmup: bool,
}
Expand description

Snapshot of budget controller telemetry for diagnostics and debug overlay.

All fields are Copy — no allocations. Intended to be cheaply captured once per frame and forwarded to a tracing subscriber or debug overlay widget.

Fields§

§schema_version: u16

Telemetry schema version for CI/E2E consumers.

§level: DegradationLevel

Current degradation level.

§pid_output: f64

Last PID control signal (positive = over budget).

§pid_p: f64

Last PID proportional term.

§pid_i: f64

Last PID integral term.

§pid_d: f64

Last PID derivative term.

§e_value: f64

Current e-process value E_t.

§frames_observed: u32

Frames observed by the e-process.

§frames_since_change: u32

Frames since last level change.

§last_decision: BudgetDecision

Last decision made by the controller.

§decision_reason: BudgetDecisionReason

Rationale code describing why the last decision was taken.

§transition_seq: u64

Monotonic transition sequence number (increments on degrade/upgrade).

§transition_correlation_id: u64

Correlation ID for the most recent transition event (0 if none yet).

§frame_time_ms: f64

Last observed frame time in milliseconds.

§target_ms: f64

Current target frame budget in milliseconds.

§pid_gate_threshold: f64

PID gate threshold used for the last decision path.

§pid_gate_margin: f64

PID gate margin (positive values indicate stronger gate pass).

§evidence_threshold: f64

Evidence (e-process) threshold used for the last decision path.

§evidence_margin: f64

Evidence gate margin (positive values indicate stronger gate pass).

§in_warmup: bool

Whether the controller is in warmup (e-process not yet active).

Trait Implementations§

Source§

impl Clone for BudgetTelemetry

Source§

fn clone(&self) -> BudgetTelemetry

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for BudgetTelemetry

Source§

impl Debug for BudgetTelemetry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for BudgetTelemetry

Source§

fn eq(&self, other: &BudgetTelemetry) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for BudgetTelemetry

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.