Crates.io | lhm-client |
lib.rs | lhm-client |
version | 0.3.0 |
created_at | 2025-05-12 05:33:46.963375+00 |
updated_at | 2025-08-02 04:47:35.473951+00 |
description | Client for using the LHM service |
homepage | |
repository | https://github.com/jacobtread/lhm-service |
max_upload_size | |
id | 1670034 |
size | 43,940 |
Client that can consume the LHM Service from user-land
use lhm_client::{ComputerOptions, Hardware, HardwareType, LHMClient, SensorType};
let mut client = LHMClient::connect().await.unwrap();
client
.set_options(ComputerOptions {
controller_enabled: true,
cpu_enabled: true,
gpu_enabled: true,
motherboard_enabled: true,
..Default::default()
})
.await
.unwrap();
client.update().await.unwrap();
let hardware = client.get_hardware().await.unwrap();
let cpus: Vec<&Hardware> = hardware
.iter()
.filter(|value| matches!(value.ty, HardwareType::Cpu))
.collect();
let cpu_temps = cpus
.iter()
.flat_map(|value| {
value
.sensors
.iter()
.filter(|value| matches!(value.ty, SensorType::Temperature))
})
.collect::<Vec<_>>();
let temp = cpu_temps
.iter()
.find(|sensor| sensor.name.eq("CPU Package"));
let temp = temp.map(|value| value.value).expect("Unknown CPU Temp");
println!("CPU is {temp}°C");