summaryrefslogtreecommitdiffstats
path: root/futures/src/runtime.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2021-09-13 11:49:06 +0700
committerLibravatar GitHub <noreply@github.com>2021-09-13 11:49:06 +0700
commit93fec8d273ef8305e1c2456abe0c8ecd7a9d9407 (patch)
treec0c2445703133293b13657ab4f9c1c936e9cd688 /futures/src/runtime.rs
parent589f68df0f647d93f2b9dd7bf29cfacb0201351c (diff)
parent01b945b9814b9dc546e783a6dab66e4f7fe49786 (diff)
downloadiced-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.rs21
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`].