1use std::time::Duration;
2
3use crate::cpu::{CpuTimes, CpuTimesPercent};
4use crate::Percent;
5
6pub trait CpuTimesExt {
7 fn iowait(&self) -> Duration;
10
11 fn irq(&self) -> Duration;
13
14 fn softirq(&self) -> Duration;
16
17 fn steal(&self) -> Option<Duration>;
19
20 fn guest(&self) -> Option<Duration>;
23
24 fn guest_nice(&self) -> Option<Duration>;
28}
29
30impl CpuTimesExt for CpuTimes {
31 fn iowait(&self) -> Duration {
32 self.iowait
33 }
34
35 fn irq(&self) -> Duration {
36 self.irq
37 }
38
39 fn softirq(&self) -> Duration {
40 self.softirq
41 }
42
43 fn steal(&self) -> Option<Duration> {
44 self.steal
45 }
46
47 fn guest(&self) -> Option<Duration> {
48 self.guest
49 }
50
51 fn guest_nice(&self) -> Option<Duration> {
52 self.guest_nice
53 }
54}
55
56pub trait CpuTimesPercentExt {
57 fn iowait(&self) -> Percent;
60
61 fn irq(&self) -> Percent;
63
64 fn softirq(&self) -> Percent;
66
67 fn steal(&self) -> Option<Percent>;
69
70 fn guest(&self) -> Option<Percent>;
73
74 fn guest_nice(&self) -> Option<Percent>;
78}
79
80impl CpuTimesPercentExt for CpuTimesPercent {
81 fn iowait(&self) -> Percent {
82 self.iowait
83 }
84
85 fn irq(&self) -> Percent {
86 self.irq
87 }
88
89 fn softirq(&self) -> Percent {
90 self.softirq
91 }
92
93 fn steal(&self) -> Option<Percent> {
94 self.steal
95 }
96
97 fn guest(&self) -> Option<Percent> {
98 self.guest
99 }
100
101 fn guest_nice(&self) -> Option<Percent> {
102 self.guest_nice
103 }
104}