use sysinfo::System;
use eframe::egui;
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;
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();
}