diff options
| author | 2022-01-31 17:01:19 +0700 | |
|---|---|---|
| committer | 2022-01-31 17:01:19 +0700 | |
| commit | e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683 (patch) | |
| tree | 6e0c9c38366c9d70204c80fc66bd8e8a7652cf52 /futures/src/executor | |
| parent | c75ed37148b019358b0297171cf31b2577eeb9ae (diff) | |
| parent | 6f604ab3995cb345aacf183a569589988aa3ad1f (diff) | |
| download | iced-e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683.tar.gz iced-e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683.tar.bz2 iced-e4ef29ef20724c3d1a4beff39ddfdaf6d45f9683.zip | |
Merge pull request #1096 from pacmancoder/feat/wgpu-webgl
Experimental WebGL wgpu backend support
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/executor.rs | 42 | ||||
| -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 | ||||
| -rw-r--r-- | futures/src/executor/wasm_bindgen.rs | 15 |
7 files changed, 8 insertions, 121 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.rs b/futures/src/executor.rs index 23682f32..5ac76081 100644 --- a/futures/src/executor.rs +++ b/futures/src/executor.rs @@ -1,38 +1,5 @@ //! 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; /// A type that can run futures. @@ -43,12 +10,7 @@ pub trait Executor: Sized { Self: Sized; /// Spawns a future in the [`Executor`]. - #[cfg(not(target_arch = "wasm32"))] - fn spawn(&self, future: impl Future<Output = ()> + Send + 'static); - - /// Spawns a local future in the [`Executor`]. - #[cfg(target_arch = "wasm32")] - fn spawn(&self, future: impl Future<Output = ()> + 'static); + fn spawn(&self, future: impl Future<Output = ()> + MaybeSend + 'static); /// Runs the given closure inside the [`Executor`]. /// 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() - } -} diff --git a/futures/src/executor/wasm_bindgen.rs b/futures/src/executor/wasm_bindgen.rs deleted file mode 100644 index 94d694c8..00000000 --- a/futures/src/executor/wasm_bindgen.rs +++ /dev/null @@ -1,15 +0,0 @@ -use crate::Executor; - -/// A `wasm-bindgen-futures` runtime. -#[derive(Debug)] -pub struct WasmBindgen; - -impl Executor for WasmBindgen { - fn new() -> Result<Self, futures::io::Error> { - Ok(Self) - } - - fn spawn(&self, future: impl futures::Future<Output = ()> + 'static) { - wasm_bindgen_futures::spawn_local(future); - } -} |
