pub trait Platform {
Show 18 methods
fn new() -> Self;
fn cpu_load(&self) -> Result<DelayedMeasurement<Vec<CPULoad>>>;
fn load_average(&self) -> Result<LoadAverage>;
fn memory(&self) -> Result<Memory>;
fn swap(&self) -> Result<Swap>;
fn battery_life(&self) -> Result<BatteryLife>;
fn on_ac_power(&self) -> Result<bool>;
fn mounts(&self) -> Result<Vec<Filesystem>>;
fn block_device_statistics(
&self
) -> Result<BTreeMap<String, BlockDeviceStats>>;
fn networks(&self) -> Result<BTreeMap<String, Network>>;
fn network_stats(&self, interface: &str) -> Result<NetworkStats>;
fn cpu_temp(&self) -> Result<f32>;
fn socket_stats(&self) -> Result<SocketStats>;
fn cpu_load_aggregate(&self) -> Result<DelayedMeasurement<CPULoad>> { ... }
fn memory_and_swap(&self) -> Result<(Memory, Swap)> { ... }
fn uptime(&self) -> Result<Duration> { ... }
fn boot_time(&self) -> Result<DateTime<Utc>> { ... }
fn mount_at<P: AsRef<Path>>(&self, path: P) -> Result<Filesystem> { ... }
}Expand description
The Platform trait declares all the functions for getting system information.
NOTE: any impl MUST override one of uptime or boot_time.
Required Methods
Returns a delayed vector of CPU load statistics, one object per CPU (core).
You need to wait some time (about a second is good) before unwrapping the
DelayedMeasurement with .done().
fn load_average(&self) -> Result<LoadAverage>
fn load_average(&self) -> Result<LoadAverage>
Returns a load average object.
fn battery_life(&self) -> Result<BatteryLife>
fn battery_life(&self) -> Result<BatteryLife>
Returns a battery life information object.
fn on_ac_power(&self) -> Result<bool>
fn on_ac_power(&self) -> Result<bool>
Returns whether AC power is plugged in.
fn mounts(&self) -> Result<Vec<Filesystem>>
fn mounts(&self) -> Result<Vec<Filesystem>>
Returns a vector of filesystem mount information objects.
fn block_device_statistics(&self) -> Result<BTreeMap<String, BlockDeviceStats>>
fn block_device_statistics(&self) -> Result<BTreeMap<String, BlockDeviceStats>>
Returns a map of block device statistics objects
Returns a map of network intefrace information objects.
It’s a map because most operating systems return an object per IP address, not per interface, and we’re doing deduplication and packing everything into one object per interface. You can use the .values() iterator if you need to iterate over all of them.
fn network_stats(&self, interface: &str) -> Result<NetworkStats>
fn network_stats(&self, interface: &str) -> Result<NetworkStats>
Returns statistics for a given interface (bytes/packets sent/received)
Returns the current CPU temperature in degrees Celsius.
Depending on the platform, this might be core 0, package, etc.
fn socket_stats(&self) -> Result<SocketStats>
fn socket_stats(&self) -> Result<SocketStats>
Returns information about the number of sockets in use
Provided Methods
fn cpu_load_aggregate(&self) -> Result<DelayedMeasurement<CPULoad>>
fn cpu_load_aggregate(&self) -> Result<DelayedMeasurement<CPULoad>>
Returns a delayed CPU load statistics object, average over all CPUs (cores).
You need to wait some time (about a second is good) before unwrapping the
DelayedMeasurement with .done().
fn memory_and_swap(&self) -> Result<(Memory, Swap)>
fn memory_and_swap(&self) -> Result<(Memory, Swap)>
Returns a swap and a memory information object. On some platforms this is more efficient than calling memory() and swap() separately If memory() or swap() are not implemented for a platform, this function will fail.
Implementors
impl Platform for PlatformImpl
An implementation of Platform for FreeBSD.
See Platform for documentation.