diff options
| author | 2022-01-28 18:24:07 +0700 | |
|---|---|---|
| committer | 2022-01-28 21:37:17 +0700 | |
| commit | 167be45a7db7c1f60a79116766bdf38300429c6a (patch) | |
| tree | 5af48807c8d90a73775fef68a51ae549880aa388 /futures/src/executor | |
| parent | 5dab5a327ef643ee38ac3e42ab35212fff445631 (diff) | |
| download | iced-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.rs | 34 | ||||
| -rw-r--r-- | futures/src/executor/async_std.rs | 18 | ||||
| -rw-r--r-- | futures/src/executor/smol.rs | 18 | ||||
| -rw-r--r-- | futures/src/executor/tokio.rs | 22 |
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() - } -} |
