Trait systemstat::platform::common::Platform [] [src]

pub trait Platform {
    fn new() -> Self;
    fn cpu_load(&self) -> Result<DelayedMeasurement<Vec<CPULoad>>>;
    fn load_average(&self) -> Result<LoadAverage>;
    fn memory(&self) -> Result<Memory>;
    fn battery_life(&self) -> Result<BatteryLife>;
    fn on_ac_power(&self) -> Result<bool>;
    fn mounts(&self) -> Result<Vec<Filesystem>>;
    fn mount_at<P: AsRef<Path>>(&self, path: P) -> Result<Filesystem>;
    fn networks(&self) -> Result<BTreeMap<StringNetwork>>;

    fn cpu_load_aggregate(&self) -> Result<DelayedMeasurement<CPULoad>> { ... }
}

The Platform trait declares all the functions for getting system information.

Required Methods

fn new() -> Self

fn cpu_load(&self) -> Result<DelayedMeasurement<Vec<CPULoad>>>

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>

Returns a load average object.

fn memory(&self) -> Result<Memory>

Returns a memory information object.

fn battery_life(&self) -> Result<BatteryLife>

Returns a battery life information object.

fn on_ac_power(&self) -> Result<bool>

Returns whether AC power is plugged in.

fn mounts(&self) -> Result<Vec<Filesystem>>

Returns a vector of filesystem mount information objects.

fn mount_at<P: AsRef<Path>>(&self, path: P) -> Result<Filesystem>

Returns a filesystem mount information object for the filesystem at a given path.

fn networks(&self) -> Result<BTreeMap<StringNetwork>>

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.

Provided Methods

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().

Implementors