diff options
author | 2021-09-13 11:49:06 +0700 | |
---|---|---|
committer | 2021-09-13 11:49:06 +0700 | |
commit | 93fec8d273ef8305e1c2456abe0c8ecd7a9d9407 (patch) | |
tree | c0c2445703133293b13657ab4f9c1c936e9cd688 /futures/src/runtime.rs | |
parent | 589f68df0f647d93f2b9dd7bf29cfacb0201351c (diff) | |
parent | 01b945b9814b9dc546e783a6dab66e4f7fe49786 (diff) | |
download | iced-93fec8d273ef8305e1c2456abe0c8ecd7a9d9407.tar.gz iced-93fec8d273ef8305e1c2456abe0c8ecd7a9d9407.tar.bz2 iced-93fec8d273ef8305e1c2456abe0c8ecd7a9d9407.zip |
Merge pull request #1019 from hecrj/command-actions
Platform-specific `Command` implementations
Diffstat (limited to 'futures/src/runtime.rs')
-rw-r--r-- | futures/src/runtime.rs | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/futures/src/runtime.rs b/futures/src/runtime.rs index e56a4eb0..7779e235 100644 --- a/futures/src/runtime.rs +++ b/futures/src/runtime.rs @@ -1,5 +1,6 @@ //! Run commands and keep track of subscriptions. -use crate::{subscription, Command, Executor, Subscription}; +use crate::BoxFuture; +use crate::{subscription, Executor, Subscription}; use futures::{channel::mpsc, Sink}; use std::marker::PhantomData; @@ -51,22 +52,18 @@ where /// /// The resulting `Message` will be forwarded to the `Sender` of the /// [`Runtime`]. - pub fn spawn(&mut self, command: Command<Message>) { + pub fn spawn(&mut self, future: BoxFuture<Message>) { use futures::{FutureExt, SinkExt}; - let futures = command.futures(); + let mut sender = self.sender.clone(); - for future in futures { - let mut sender = self.sender.clone(); - - let future = future.then(|message| async move { - let _ = sender.send(message).await; + let future = future.then(|message| async move { + let _ = sender.send(message).await; - () - }); + () + }); - self.executor.spawn(future); - } + self.executor.spawn(future); } /// Tracks a [`Subscription`] in the [`Runtime`]. |