use crate::loadavg::LoadAvg;
use crate::scanner::ProcScanner;
use crate::ProcResult;
#[derive(Debug, Default, Clone)]
pub(crate) struct LoadAvgParser();
impl LoadAvgParser {
pub fn parse(&mut self, sl: &[u8]) -> ProcResult<LoadAvg> {
let mut loadavg = LoadAvg::default();
if sl.is_empty() {
return Ok(loadavg);
}
let mut sc = ProcScanner::new(sl);
loadavg.a1 = sc.next(b' ')?;
loadavg.a5 = sc.next(b' ')?;
loadavg.a15 = sc.next(b' ')?;
sc.scan_until(b' ')?;
loadavg.last_pid = sc.next(b'\n')?;
Ok(loadavg)
}
}