use std::error::Error; use anyhow::Result; use sysinfo::System; #[derive(Debug)] pub struct MemoryInfo { pub total: Option, pub used: Option, pub free: Option, } pub async fn get_memory_info() -> Result { let mut sys = System::new(); sys.refresh_memory(); Ok(MemoryInfo { total: Some(sys.total_memory() as f64), used: Some(sys.used_memory() as f64), free: Some(sys.free_memory() as f64), }) } pub fn _get_memory_usage(sys: &mut System) -> Result> { sys.refresh_memory(); Ok((sys.used_memory() as f64 / sys.total_memory() as f64) * 100.0) }