sys-resource-manager 0.1.0

A system resource manager displaying system info.
use sysinfo::System;
use eframe::egui;

/// Show Memory info
pub fn show_memory_info(sys: &System, ui: &mut egui::Ui) {
    let total = sys.total_memory() as f64;
    let used = sys.used_memory() as f64;
    let percent = (used / total) * 100.0;

    // Determine color based on usage
    let color = if percent > 85.0 {
        if ui.ctx().style().visuals.dark_mode {
            egui::Color32::DARK_RED
        } else {
            egui::Color32::RED
        }
    } else if percent > 70.0 {
        egui::Color32::GOLD
    } else {
        if ui.ctx().style().visuals.dark_mode {
            egui::Color32::DARK_GREEN
        } else {
            egui::Color32::GREEN
        }
    };

    ui.horizontal(|ui| {
        ui.label("Memory Usage:");
        ui.add(
            egui::ProgressBar::new((percent / 100.0) as f32)
                .desired_width(200.0)
                .fill(color)
                .text(format!("{:.1}%", percent)),
        );
    });

    let total_gb = total / 1024.0 / 1024.0 / 1024.0;
    let used_gb = used / 1024.0 / 1024.0 / 1024.0;

    ui.label(format!(
        "Memory Used: {:.2} GB / {:.2} GB ({:.2}%)",
        used_gb, total_gb, percent
    ));
    ui.separator();
}