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 · Source§

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

Performs copy-assignment from source. Read more
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 · 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 Copy for BudgetTelemetry

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<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> 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.