rsiot/components/cmp_system_info/system_info.rs
1use std::collections::HashMap;
2
3/// Системная информация
4#[derive(Debug, Default)]
5pub struct SystemInfo {
6 /// Returns the system hostname based off DNS.
7 pub host_name: String,
8
9 /// Returns the system long os version (e.g “MacOS 11.2 BigSur”).
10 pub os_version: String,
11
12 /// Информация о сетевых подключениях
13 pub networks: HashMap<String, SystemInfoNetwork>,
14
15 /// Returns CPU’s usage.
16 pub cpu_usage: Vec<f32>,
17
18 /// Temperature of components
19 pub temperatures: HashMap<String, f32>,
20
21 /// Информация о памяти
22 pub memory: SystemInfoMemory,
23
24 /// Информация о дисках
25 pub disks: HashMap<String, SystemInfoDisk>,
26}
27
28/// Информация о сетевом подключении
29#[derive(Debug, Default)]
30pub struct SystemInfoNetwork {
31 /// Name of network interface
32 pub name: String,
33
34 /// MAC address for network interface
35 pub mac_address: String,
36}
37
38/// Информация о потребленной памяти
39#[derive(Debug, Default)]
40pub struct SystemInfoMemory {
41 /// Доступный размер оперативной памяти, \[MB\]
42 pub total_memory_mb: f32,
43
44 /// Используемый размер оперативной памяти, \[MB\]
45 pub used_memory_mb: f32,
46
47 /// Общий размер swap, \[MB\]
48 pub total_swap_mb: f32,
49
50 /// Используемый размер swap, \[MB\]
51 pub used_swap_mb: f32,
52}
53
54/// Информация о диске
55#[derive(Debug, Default)]
56pub struct SystemInfoDisk {
57 /// Название
58 pub name: String,
59
60 /// Занятое пространство, \[GB\]
61 pub used_space_gb: f32,
62
63 /// Общее пространство, \[GB\]
64 pub total_space_gb: f32,
65}