summaryrefslogblamecommitdiffstats
path: root/runtime/src/system.rs
blob: b6fb4fdf110f1d5a1891c5aa01e2acb15b306dfc (plain) (tree)
1
2
3
                             
                                              
 



































                                                                                                   
//! Access the native system.
use crate::futures::futures::channel::oneshot;

/// An operation to be performed on the system.
#[derive(Debug)]
pub enum Action {
    /// Query system information and produce `T` with the result.
    QueryInformation(oneshot::Sender<Information>),
}

/// Contains informations about the system (e.g. system name, processor, memory, graphics adapter).
#[derive(Clone, Debug)]
pub struct Information {
    /// The operating system name
    pub system_name: Option<String>,
    /// Operating system kernel version
    pub system_kernel: Option<String>,
    /// Long operating system version
    ///
    /// Examples:
    /// - MacOS 10.15 Catalina
    /// - Windows 10 Pro
    /// - Ubuntu 20.04 LTS (Focal Fossa)
    pub system_version: Option<String>,
    /// Short operating system version number
    pub system_short_version: Option<String>,
    /// Detailed processor model information
    pub cpu_brand: String,
    /// The number of physical cores on the processor
    pub cpu_cores: Option<usize>,
    /// Total RAM size, in bytes
    pub memory_total: u64,
    /// Memory used by this process, in bytes
    pub memory_used: Option<u64>,
    /// Underlying graphics backend for rendering
    pub graphics_backend: String,
    /// Model information for the active graphics adapter
    pub graphics_adapter: String,
}