diff --git a/procfs-core/src/lib.rs b/procfs-core/src/lib.rs index 3a48397..f7162ad 100644 --- a/procfs-core/src/lib.rs +++ b/procfs-core/src/lib.rs @@ -799,6 +799,34 @@ pub struct CpuTime { } impl CpuTime { + pub fn from_values( + user: u64, + nice: u64, + system: u64, + idle: u64, + iowait: Option, + irq: Option, + softirq: Option, + steal: Option, + guest: Option, + guest_nice: Option, + tps: u64, + ) -> CpuTime { + CpuTime { + user, + nice, + system, + idle, + iowait, + irq, + softirq, + steal, + guest, + guest_nice, + tps, + } + } + fn from_str(s: &str, ticks_per_second: u64) -> ProcResult { let mut s = s.split_whitespace(); @@ -819,19 +847,9 @@ impl CpuTime { let guest = s.next().map(|s| Ok(from_str!(u64, s))).transpose()?; let guest_nice = s.next().map(|s| Ok(from_str!(u64, s))).transpose()?; - Ok(CpuTime { - user, - nice, - system, - idle, - iowait, - irq, - softirq, - steal, - guest, - guest_nice, - tps, - }) + Ok(CpuTime::from_values( + user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice, tps, + )) } /// Milliseconds spent in user mode