heim_memory/os/mod.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
//! OS-specific extensions.
//!
//! These are not cross-platform and their usage should be `cfg`-wrapped.
#[cfg(not(windows))]
use heim_common::units::Information;
cfg_if::cfg_if! {
if #[cfg(target_os = "linux")] {
pub mod linux;
} else if #[cfg(target_os = "macos")] {
pub mod macos;
}
}
/// OS-specific extension to [Swap].
///
/// ## Compatibility
///
/// Applicable for all supported platforms except Windows.
///
/// [Swap]: ../struct.Swap.html
#[cfg(not(windows))]
pub trait SwapExt {
/// The cumulative amount of information the system has swapped in from disk.
fn sin(&self) -> Option<Information>;
/// The cumulative amount of information the system has swapped out from disk.
fn sout(&self) -> Option<Information>;
}
#[cfg(not(windows))]
impl SwapExt for crate::Swap {
fn sin(&self) -> Option<Information> {
self.as_ref().sin()
}
fn sout(&self) -> Option<Information> {
self.as_ref().sout()
}
}