summaryrefslogtreecommitdiffstats
path: root/runtime/src/system
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--runtime/src/system.rs41
-rw-r--r--runtime/src/system/action.rs39
-rw-r--r--runtime/src/system/information.rs29
3 files changed, 37 insertions, 72 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,
+}
diff --git a/runtime/src/system/action.rs b/runtime/src/system/action.rs
deleted file mode 100644
index dea9536f..00000000
--- a/runtime/src/system/action.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-use crate::system;
-
-use iced_futures::MaybeSend;
-use std::fmt;
-
-/// An operation to be performed on the system.
-pub enum Action<T> {
- /// Query system information and produce `T` with the result.
- QueryInformation(Box<dyn Closure<T>>),
-}
-
-pub trait Closure<T>: Fn(system::Information) -> T + MaybeSend {}
-
-impl<T, O> Closure<O> for T where T: Fn(system::Information) -> O + MaybeSend {}
-
-impl<T> Action<T> {
- /// Maps the output of a system [`Action`] using the provided closure.
- pub fn map<A>(
- self,
- f: impl Fn(T) -> A + 'static + MaybeSend + Sync,
- ) -> Action<A>
- where
- T: 'static,
- {
- match self {
- Self::QueryInformation(o) => {
- Action::QueryInformation(Box::new(move |s| f(o(s))))
- }
- }
- }
-}
-
-impl<T> fmt::Debug for Action<T> {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- match self {
- Self::QueryInformation(_) => write!(f, "Action::QueryInformation"),
- }
- }
-}
diff --git a/runtime/src/system/information.rs b/runtime/src/system/information.rs
deleted file mode 100644
index 0f78f5e9..00000000
--- a/runtime/src/system/information.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-/// 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,
-}