summaryrefslogtreecommitdiffstats
path: root/runtime/src/system.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/src/system.rs')
-rw-r--r--runtime/src/system.rs41
1 files changed, 37 insertions, 4 deletions
diff --git a/runtime/src/system.rs b/runtime/src/system.rs
index 61c8ff29..b6fb4fdf 100644
--- a/runtime/src/system.rs
+++ b/runtime/src/system.rs
@@ -1,6 +1,39 @@
//! Access the native system.
-mod action;
-mod information;
+use crate::futures::futures::channel::oneshot;
-pub use action::Action;
-pub use information::Information;
+/// 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,
+}