Skip to main content

wayle_sysinfo/types/
cpu.rs

1use derive_more::Debug;
2
3/// CPU metrics snapshot.
4#[derive(Debug, Clone, Default, PartialEq)]
5pub struct CpuData {
6    /// Total CPU usage across all cores (0.0 - 100.0).
7    pub usage_percent: f32,
8
9    /// Average frequency across all cores in MHz.
10    pub avg_frequency_mhz: u64,
11
12    /// Maximum frequency among all cores in MHz.
13    pub max_frequency_mhz: u64,
14
15    /// Frequency of the busiest core (highest usage) in MHz.
16    pub busiest_core_freq_mhz: u64,
17
18    /// CPU temperature in Celsius, if available.
19    pub temperature_celsius: Option<f32>,
20
21    /// Per-core CPU data.
22    #[debug(skip)]
23    pub cores: Vec<CoreData>,
24}
25
26/// Per-core CPU metrics.
27#[derive(Debug, Clone, PartialEq)]
28pub struct CoreData {
29    /// Core identifier (e.g., "cpu0", "cpu1").
30    pub name: String,
31
32    /// Core usage percentage (0.0 - 100.0).
33    pub usage_percent: f32,
34
35    /// Core frequency in MHz.
36    pub frequency_mhz: u64,
37}