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}