use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct ProcPidStatus {
pub name: String,
pub vmpeak: u64,
pub vmsize: u64,
pub vmhwm: u64,
pub vmrss: u64,
pub vmdata: u64,
pub vmstk: u64,
pub vmexe: u64,
pub vmlib: u64,
pub vmpte: u64,
pub vmswap: u64,
pub rssanon: u64,
pub rssfile: u64,
pub rssshmem: u64,
pub nonewprivs: u64,
}
impl ProcPidStatus {
pub(crate) fn from_procfs_status(status: procfs::process::Status) -> Option<Self> {
Some(Self {
name: status.name,
vmpeak: status.vmpeak.unwrap_or_default(),
vmsize: status.vmsize.unwrap_or_default(),
vmhwm: status.vmhwm.unwrap_or_default(),
vmrss: status.vmrss.unwrap_or_default(),
vmdata: status.vmdata.unwrap_or_default(),
vmstk: status.vmstk.unwrap_or_default(),
vmexe: status.vmexe.unwrap_or_default(),
vmlib: status.vmlib.unwrap_or_default(),
vmpte: status.vmpte.unwrap_or_default(),
vmswap: status.vmswap.unwrap_or_default(),
rssanon: status.rssanon.unwrap_or_default(),
rssfile: status.rssfile.unwrap_or_default(),
rssshmem: status.rssshmem.unwrap_or_default(),
nonewprivs: status.nonewprivs.unwrap_or_default(),
})
}
}