summaryrefslogtreecommitdiffstats
path: root/futures/src/executor
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 18:24:07 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 21:37:17 +0700
commit167be45a7db7c1f60a79116766bdf38300429c6a (patch)
tree5af48807c8d90a73775fef68a51ae549880aa388 /futures/src/executor
parent5dab5a327ef643ee38ac3e42ab35212fff445631 (diff)
downloadiced-167be45a7db7c1f60a79116766bdf38300429c6a.tar.gz
iced-167be45a7db7c1f60a79116766bdf38300429c6a.tar.bz2
iced-167be45a7db7c1f60a79116766bdf38300429c6a.zip
Split `iced_futures` into different `backend` implementations
Diffstat (limited to '')
-rw-r--r--futures/src/backend/native/thread_pool.rs (renamed from futures/src/executor/thread_pool.rs)7
-rw-r--r--futures/src/backend/null.rs (renamed from futures/src/executor/null.rs)7
-rw-r--r--futures/src/backend/wasm/wasm_bindgen.rs (renamed from futures/src/executor/wasm_bindgen.rs)8
-rw-r--r--futures/src/executor.rs34
-rw-r--r--futures/src/executor/async_std.rs18
-rw-r--r--futures/src/executor/smol.rs18
-rw-r--r--futures/src/executor/tokio.rs22
7 files changed, 10 insertions, 104 deletions
diff --git a/futures/src/executor/thread_pool.rs b/futures/src/backend/native/thread_pool.rs
index a6c6168e..6e791533 100644
--- a/futures/src/executor/thread_pool.rs
+++ b/futures/src/backend/native/thread_pool.rs
@@ -1,12 +1,11 @@
-use crate::Executor;
-
+//! A `ThreadPool` backend.
use futures::Future;
-/// A thread pool runtime for futures.
+/// A thread pool executor for futures.
#[cfg_attr(docsrs, doc(cfg(feature = "thread-pool")))]
pub type ThreadPool = futures::executor::ThreadPool;
-impl Executor for futures::executor::ThreadPool {
+impl crate::Executor for futures::executor::ThreadPool {
fn new() -> Result<Self, futures::io::Error> {
futures::executor::ThreadPool::new()
}
diff --git a/futures/src/executor/null.rs b/futures/src/backend/null.rs
index 65e2e2df..e22e7921 100644
--- a/futures/src/executor/null.rs
+++ b/futures/src/backend/null.rs
@@ -1,12 +1,11 @@
-use crate::Executor;
-
+//! A backend that does nothing!
use futures::Future;
/// An executor that drops all the futures, instead of spawning them.
#[derive(Debug)]
-pub struct Null;
+pub struct Executor;
-impl Executor for Null {
+impl crate::Executor for Executor {
fn new() -> Result<Self, futures::io::Error> {
Ok(Self)
}
diff --git a/futures/src/executor/wasm_bindgen.rs b/futures/src/backend/wasm/wasm_bindgen.rs
index 94d694c8..e914aeba 100644
--- a/futures/src/executor/wasm_bindgen.rs
+++ b/futures/src/backend/wasm/wasm_bindgen.rs
@@ -1,10 +1,10 @@
-use crate::Executor;
+//! A `wasm-bindgein-futures` backend.
-/// A `wasm-bindgen-futures` runtime.
+/// A `wasm-bindgen-futures` executor.
#[derive(Debug)]
-pub struct WasmBindgen;
+pub struct Executor;
-impl Executor for WasmBindgen {
+impl crate::Executor for Executor {
fn new() -> Result<Self, futures::io::Error> {
Ok(Self)
}
diff --git a/futures/src/executor.rs b/futures/src/executor.rs
index 34e329a0..5ac76081 100644
--- a/futures/src/executor.rs
+++ b/futures/src/executor.rs
@@ -1,38 +1,4 @@
//! Choose your preferred executor to power a runtime.
-mod null;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "thread-pool"))]
-mod thread_pool;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "tokio"))]
-mod tokio;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "async-std"))]
-mod async_std;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "smol"))]
-mod smol;
-
-#[cfg(target_arch = "wasm32")]
-mod wasm_bindgen;
-
-pub use null::Null;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "thread-pool"))]
-pub use thread_pool::ThreadPool;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "tokio"))]
-pub use self::tokio::Tokio;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "async-std"))]
-pub use self::async_std::AsyncStd;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "smol"))]
-pub use self::smol::Smol;
-
-#[cfg(target_arch = "wasm32")]
-pub use wasm_bindgen::WasmBindgen;
-
use crate::MaybeSend;
use futures::Future;
diff --git a/futures/src/executor/async_std.rs b/futures/src/executor/async_std.rs
deleted file mode 100644
index 471be369..00000000
--- a/futures/src/executor/async_std.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-use crate::Executor;
-
-use futures::Future;
-
-/// An `async-std` runtime.
-#[cfg_attr(docsrs, doc(cfg(feature = "async-std")))]
-#[derive(Debug)]
-pub struct AsyncStd;
-
-impl Executor for AsyncStd {
- fn new() -> Result<Self, futures::io::Error> {
- Ok(Self)
- }
-
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
- let _ = async_std::task::spawn(future);
- }
-}
diff --git a/futures/src/executor/smol.rs b/futures/src/executor/smol.rs
deleted file mode 100644
index deafd43a..00000000
--- a/futures/src/executor/smol.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-use crate::Executor;
-
-use futures::Future;
-
-/// A `smol` runtime.
-#[cfg_attr(docsrs, doc(cfg(feature = "smol")))]
-#[derive(Debug)]
-pub struct Smol;
-
-impl Executor for Smol {
- fn new() -> Result<Self, futures::io::Error> {
- Ok(Self)
- }
-
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
- smol::spawn(future).detach();
- }
-}
diff --git a/futures/src/executor/tokio.rs b/futures/src/executor/tokio.rs
deleted file mode 100644
index c6a21cec..00000000
--- a/futures/src/executor/tokio.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-use crate::Executor;
-
-use futures::Future;
-
-/// A `tokio` runtime.
-#[cfg_attr(docsrs, doc(cfg(feature = "tokio")))]
-pub type Tokio = tokio::runtime::Runtime;
-
-impl Executor for Tokio {
- fn new() -> Result<Self, futures::io::Error> {
- tokio::runtime::Runtime::new()
- }
-
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
- let _ = tokio::runtime::Runtime::spawn(self, future);
- }
-
- fn enter<R>(&self, f: impl FnOnce() -> R) -> R {
- let _guard = tokio::runtime::Runtime::enter(self);
- f()
- }
-}