Skip to main content

BudgetTelemetry

Struct BudgetTelemetry 

Source
pub struct BudgetTelemetry {
    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 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§

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

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