summaryrefslogtreecommitdiffstats
path: root/runtime/src/system.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2024-06-16 20:24:41 +0200
committerLibravatar GitHub <noreply@github.com>2024-06-16 20:24:41 +0200
commit95d4adb55e485c01eec839736f328be26f2ccab6 (patch)
tree2676e3cb8ec17c5bf1cd561d97932ae302551dfd /runtime/src/system.rs
parente6d0b3bda5042a1017a5944a5227c97e0ed6caf9 (diff)
parentb5c5a016c4f2b608a740b37c494186557a064f48 (diff)
downloadiced-95d4adb55e485c01eec839736f328be26f2ccab6.tar.gz
iced-95d4adb55e485c01eec839736f328be26f2ccab6.tar.bz2
iced-95d4adb55e485c01eec839736f328be26f2ccab6.zip
Merge pull request #2463 from iced-rs/task-api
`Task` API
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,
+}