summaryrefslogtreecommitdiffstats
path: root/runtime/src/system.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-06-14 01:47:39 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-06-14 01:47:39 +0200
commita25b1af45690bdd8e1cbb20ee3a5b1c4342de455 (patch)
tree432044cf682dd73d1019a2f964749e78db178865 /runtime/src/system.rs
parente6d0b3bda5042a1017a5944a5227c97e0ed6caf9 (diff)
downloadiced-a25b1af45690bdd8e1cbb20ee3a5b1c4342de455.tar.gz
iced-a25b1af45690bdd8e1cbb20ee3a5b1c4342de455.tar.bz2
iced-a25b1af45690bdd8e1cbb20ee3a5b1c4342de455.zip
Replace `Command` with a new `Task` API with chain support
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,
+}