diff options
author | 2020-01-20 05:43:09 +0100 | |
---|---|---|
committer | 2020-01-20 05:43:09 +0100 | |
commit | 04086a90c9e933ebfb42de378054e1115b33529d (patch) | |
tree | f0a9e25216807f9a20d757eadf420456d16f613f /futures/src | |
parent | 90690702e1e4abab804ec91e8ff4183824bec436 (diff) | |
download | iced-04086a90c9e933ebfb42de378054e1115b33529d.tar.gz iced-04086a90c9e933ebfb42de378054e1115b33529d.tar.bz2 iced-04086a90c9e933ebfb42de378054e1115b33529d.zip |
Implement `WasmBindgen` executor and reorganize
Diffstat (limited to 'futures/src')
-rw-r--r-- | futures/src/executor.rs | 12 | ||||
-rw-r--r-- | futures/src/executor/wasm_bindgen.rs | 17 |
2 files changed, 26 insertions, 3 deletions
diff --git a/futures/src/executor.rs b/futures/src/executor.rs index 144a41f8..b2ff043e 100644 --- a/futures/src/executor.rs +++ b/futures/src/executor.rs @@ -4,23 +4,29 @@ mod null; #[cfg(feature = "thread-pool")] mod thread_pool; -#[cfg(feature = "thread-pool")] -pub use thread_pool::ThreadPool; - #[cfg(feature = "tokio")] mod tokio; #[cfg(feature = "async-std")] mod async_std; +#[cfg(target_arch = "wasm32")] +mod wasm_bindgen; + pub use null::Null; +#[cfg(feature = "thread-pool")] +pub use thread_pool::ThreadPool; + #[cfg(feature = "tokio")] pub use self::tokio::Tokio; #[cfg(feature = "async-std")] pub use self::async_std::AsyncStd; +#[cfg(target_arch = "wasm32")] +pub use wasm_bindgen::WasmBindgen; + use futures::Future; pub trait Executor: Sized { diff --git a/futures/src/executor/wasm_bindgen.rs b/futures/src/executor/wasm_bindgen.rs new file mode 100644 index 00000000..70a8ea8e --- /dev/null +++ b/futures/src/executor/wasm_bindgen.rs @@ -0,0 +1,17 @@ +use crate::Executor; + +#[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 = ()> + Send + 'static, + ) { + wasm_bindgen_futures::spawn_local(future); + } +} |