use std::path::PathBuf;
#[derive(Debug, Clone, PartialEq)]
pub struct ProcInfo {
pub pid: i32,
pub ppid: i32,
pub uid: u32,
pub name: String,
pub path: Option<PathBuf>,
pub footprint: Option<u64>,
pub responsible_pid: Option<i32>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Pressure {
Normal,
Warn,
Critical,
}
impl Pressure {
pub fn from_level(level: i32) -> Pressure {
match level {
2 => Pressure::Warn,
4 => Pressure::Critical,
_ => Pressure::Normal,
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub struct SystemStats {
pub total: u64,
pub used: u64,
pub wired: u64,
pub swap_used: u64,
pub app_footprint: u64,
pub pressure: Pressure,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Snapshot {
pub procs: Vec<ProcInfo>,
pub stats: SystemStats,
pub current_uid: u32,
pub self_pid: i32,
}