aboutsummaryrefslogtreecommitdiff
path: root/src/utils/load_average.rs
blob: 43dc88b9e98f9a34473e18be6b31bc8cf4d2525e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::config::CONFIG;
use crate::types::ThreadsData;

use nix::libc::{c_double, c_int, getloadavg};

pub fn get_load_avg() -> ThreadsData {
    let mut data: [c_double; 3] = [0f64; 3];
    unsafe { getloadavg(data.as_mut_ptr(), data.len() as c_int) };
    let [load, _, _] = data;
    let data = format!(
        "  {}  {:.2}  {}",
        CONFIG.loadavg.icon, load, CONFIG.seperator
    );

    ThreadsData::LoadAvg(data)
}