rsys/os/linux/
os_impl_ext.rs1use super::{cpu::*, kernel_version, mem::*, misc::*, net::*, ps::*, storage::*, Linux};
2use crate::Result;
3
4pub trait OsImplExt {
6 fn stat_block_device(&self, name: &str) -> Result<StorageDevice>;
13
14 fn stat_device_mapper(&self, name: &str) -> Result<DeviceMapper>;
17
18 fn stat_scsi_cdrom(&self, name: &str) -> Result<ScsiCdrom>;
21
22 fn stat_multiple_device_storage(&self, name: &str) -> Result<MultipleDeviceStorage>;
25
26 fn block_size(&self, name: &str) -> Result<i64>;
28
29 fn memory(&self) -> Result<Memory>;
35
36 fn stat_process(&self, pid: i32) -> Result<Process>;
42
43 fn pids(&self) -> Result<Vec<i32>>;
45
46 fn processes(&self) -> Result<Processes>;
48
49 fn kernel_version(&self) -> Result<String>;
55
56 fn mounts(&self) -> Result<MountPoints>;
58
59 fn cores(&self) -> Result<Cores>;
65
66 fn processor(&self) -> Result<Processor>;
68
69 fn ifaces(&self) -> Result<Interfaces>;
75}
76
77impl OsImplExt for Linux {
78 fn stat_block_device(&self, name: &str) -> Result<StorageDevice> {
83 stat_block_device(name)
84 }
85
86 fn stat_device_mapper(&self, name: &str) -> Result<DeviceMapper> {
87 stat_device_mapper(name)
88 }
89
90 fn stat_scsi_cdrom(&self, name: &str) -> Result<ScsiCdrom> {
91 stat_scsi_cdrom(name)
92 }
93
94 fn stat_multiple_device_storage(&self, name: &str) -> Result<MultipleDeviceStorage> {
95 stat_multiple_device_storage(name)
96 }
97
98 fn block_size(&self, name: &str) -> Result<i64> {
99 block_size(name)
100 }
101
102 fn memory(&self) -> Result<Memory> {
107 memory()
108 }
109
110 fn stat_process(&self, pid: i32) -> Result<Process> {
115 stat_process(pid)
116 }
117
118 fn pids(&self) -> Result<Vec<i32>> {
119 pids()
120 }
121
122 fn processes(&self) -> Result<Processes> {
123 processes()
124 }
125
126 fn kernel_version(&self) -> Result<String> {
131 kernel_version()
132 }
133
134 fn mounts(&self) -> Result<MountPoints> {
135 mounts()
136 }
137
138 fn cores(&self) -> Result<Cores> {
143 cores()
144 }
145
146 fn processor(&self) -> Result<Processor> {
147 processor()
148 }
149
150 fn ifaces(&self) -> Result<Interfaces> {
155 ifaces()
156 }
157}