Component

Struct Component 

Source
pub struct Component { /* private fields */ }
Expand description

Getting a component temperature information.

use sysinfo::Components;

let components = Components::new_with_refreshed_list();
for component in &components {
    if let Some(temperature) = component.temperature() {
        println!("{} {temperature}°C", component.label());
    } else {
        println!("{} (unknown temperature)", component.label());
    }
}

Implementations§

Source§

impl Component

Source

pub fn temperature(&self) -> Option<f32>

Returns the temperature of the component (in celsius degree).

§Linux

Returns f32::NAN if it failed to retrieve it.

use sysinfo::Components;

let components = Components::new_with_refreshed_list();
for component in &components {
    if let Some(temperature) = component.temperature() {
        println!("{temperature}°C");
    }
}
Source

pub fn max(&self) -> Option<f32>

Returns the maximum temperature of the component (in celsius degree).

Note: if temperature is higher than the current max, max value will be updated on refresh.

§Linux

May be computed by sysinfo from kernel. Returns f32::NAN if it failed to retrieve it.

use sysinfo::Components;

let components = Components::new_with_refreshed_list();
for component in &components {
    if let Some(max) = component.max() {
        println!("{max}°C");
    }
}
Source

pub fn critical(&self) -> Option<f32>

Returns the highest temperature before the component halts (in celsius degree).

§Linux

Critical threshold defined by chip or kernel.

use sysinfo::Components;

let components = Components::new_with_refreshed_list();
for component in &components {
    if let Some(critical) = component.critical() {
        println!("{critical}°C");
    }
}
Source

pub fn label(&self) -> &str

Returns the label of the component.

§Linux

Since components information is retrieved thanks to hwmon, the labels are generated as follows. Note: it may change and it was inspired by sensors own formatting.

namelabeldevice_modelid_sensorComputed label by sysinfo
"{name} {label} {device_model}"
"{name} {label}"
"{name} {device_model}"
"{name} temp{id}"
use sysinfo::Components;

let components = Components::new_with_refreshed_list();
for component in &components {
    println!("{}", component.label());
}
Source

pub fn refresh(&mut self)

Refreshes component.

use sysinfo::Components;

let mut components = Components::new_with_refreshed_list();
for component in components.iter_mut() {
    component.refresh();
}

Trait Implementations§

Source§

impl Debug for Component

Source§

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

Formats the value using the given formatter. Read more

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

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 152 bytes