diff options
Diffstat (limited to 'src/mem.rs')
| -rw-r--r-- | src/mem.rs | 77 | 
1 files changed, 0 insertions, 77 deletions
diff --git a/src/mem.rs b/src/mem.rs deleted file mode 100644 index 8245c29..0000000 --- a/src/mem.rs +++ /dev/null @@ -1,77 +0,0 @@ -use std::fs::File; -use std::io::Read; - -use crate::load_config::Settings; - -//MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable -pub fn mem(setting: &Settings) -> Result<String, std::io::Error> { -    let mut buf = String::new(); - -    File::open("/proc/meminfo")?.read_to_string(&mut buf)?; - -    let mut mem_total: u32 = 0; -    let mut shmem: u32 = 0; -    let mut mem_free: u32 = 0; -    let mut mem_buffers: u32 = 0; -    let mut mem_cached: u32 = 0; -    let mut mem_srecl: u32 = 0; - -    for line in buf.lines() { -        if mem_total > 0 -            && shmem > 0 -            && mem_free > 0 -            && mem_buffers > 0 -            && mem_cached > 0 -            && mem_srecl > 0 -        { -            break; -        } -        if line.starts_with("MemTotal") { -            assign_val(line, &mut mem_total); -        } -        if line.starts_with("SReclaimable") { -            assign_val(line, &mut mem_srecl) -        } -        if line.starts_with("Cached") { -            assign_val(line, &mut mem_cached) -        } - -        if line.starts_with("Shmem") { -            assign_val(line, &mut shmem); -        } - -        if line.starts_with("MemFree") { -            assign_val(line, &mut mem_free); -        } -        if line.starts_with("Buffers") { -            assign_val(line, &mut mem_buffers); -        } -    } - -    let mem_used = (mem_total + shmem - mem_free - mem_buffers - mem_cached - mem_srecl) / 1024; -    let result: String; -    if mem_used > 1000 { -        result = format!( -            "  {}  {:.1}G  {}", -            setting.memory.icon, -            mem_used as f32 / 1000.0, -            setting.seperator -        ); -    } else { -        result = format!( -            "  {}  {}M  {}", -            setting.memory.icon, mem_used, setting.seperator -        ); -    } -    Ok(result) -} - -fn assign_val(line: &str, assignable: &mut u32) { -    let parsed: u32 = line.split(':').collect::<Vec<&str>>()[1] -        .trim() -        .split(' ') -        .collect::<Vec<&str>>()[0] -        .parse() -        .unwrap(); -    *assignable = parsed; -}  | 
