mprober_lib/load_average/
mod.rs1use std::io::ErrorKind;
2
3use crate::scanner_rust::{generic_array::typenum::U24, ScannerAscii, ScannerError};
4
5#[derive(Default, Debug, Clone)]
6pub struct LoadAverage {
7 pub one: f64,
8 pub five: f64,
9 pub fifteen: f64,
10 }
12
13#[inline]
23pub fn get_load_average() -> Result<LoadAverage, ScannerError> {
24 let mut sc: ScannerAscii<_, U24> = ScannerAscii::scan_path2("/proc/loadavg")?;
25
26 let one = sc.next_f64()?.ok_or(ErrorKind::UnexpectedEof)?;
27 let five = sc.next_f64()?.ok_or(ErrorKind::UnexpectedEof)?;
28 let fifteen = sc.next_f64()?.ok_or(ErrorKind::UnexpectedEof)?;
29
30 Ok(LoadAverage {
31 one,
32 five,
33 fifteen,
34 })
35}