Skip to main content

TemperatureReading

Struct TemperatureReading 

Source
pub struct TemperatureReading {
    pub label: Box<str>,
    pub celsius: f32,
    pub peak_celsius: Option<f32>,
    pub critical_celsius: Option<f32>,
}
Expand description

One temperature sensor reading.

Fields§

§label: Box<str>

Sensor label, e.g. coretemp Package id 0.

§celsius: f32

Current temperature in degrees Celsius.

§peak_celsius: Option<f32>

The highest value this sensor has been seen at, where the platform offers one.

Not a threshold, and deliberately not named like one. The underlying interface reports either the sensor’s declared high limit or the maximum value observed since the process started, depending on the platform and the driver, and the two are indistinguishable from here. It is therefore useful as context — “it has been this hot” — and never usable as a full scale for a bar or a percentage. Only TemperatureReading::critical_celsius is a declared ceiling.

§critical_celsius: Option<f32>

The critical threshold the sensor reports, where available.

The one figure here that is a genuine ceiling, which is why it is the only denominator anything is allowed to draw a scale against.

Implementations§

Source§

impl TemperatureReading

Source

pub fn is_critical(&self) -> Option<bool>

Whether the reading is at or above the sensor’s own critical threshold.

Returns None when the sensor reports no threshold. §11.3 forbids diagnosing thermal throttling from an ambiguous metric, so this only ever reports what the sensor itself declares critical, and the diagnostic engine draws no throttling conclusion from it.

Source

pub fn share_of_critical(&self) -> Option<Percent>

The reading as a share of the sensor’s own declared ceiling.

None when the sensor declares none, which is what stops a caller drawing a bar: a temperature has no natural full scale, and 62 °C is most of the way to a laptop’s limit while being barely warm for a GPU. Deliberately refuses TemperatureReading::peak_celsius as a substitute — a bar scaled against the highest value seen so far would sit at 100% forever.

Lives here rather than in the UI so the refusal is the model’s, and every screen that wants a thermal bar gets the same answer (§7.4’s rule about utilization without a known capacity, applied to temperature).

Trait Implementations§

Source§

impl Clone for TemperatureReading

Source§

fn clone(&self) -> TemperatureReading

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 Debug for TemperatureReading

Source§

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

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

impl PartialEq for TemperatureReading

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for TemperatureReading

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.