summaryrefslogtreecommitdiffstats
path: root/futures/src/subscription.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-03-26 14:55:02 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-03-26 14:55:02 +0100
commit338fff35ac821e6b03d68bd94418de500fb50f77 (patch)
tree7028f6e3c6f28c3d14392e5d1b3bb07586955c28 /futures/src/subscription.rs
parent138110f5967899365bb4e1409651dec43a46d123 (diff)
downloadiced-338fff35ac821e6b03d68bd94418de500fb50f77.tar.gz
iced-338fff35ac821e6b03d68bd94418de500fb50f77.tar.bz2
iced-338fff35ac821e6b03d68bd94418de500fb50f77.zip
Make `subscription::Recipe` cross-platform
By removing the `Send` requirement when targetting Wasm
Diffstat (limited to 'futures/src/subscription.rs')
-rw-r--r--futures/src/subscription.rs34
1 files changed, 15 insertions, 19 deletions
diff --git a/futures/src/subscription.rs b/futures/src/subscription.rs
index 8eccb7be..ab333a20 100644
--- a/futures/src/subscription.rs
+++ b/futures/src/subscription.rs
@@ -3,7 +3,7 @@ mod tracker;
pub use tracker::Tracker;
-use futures::stream::BoxStream;
+use crate::BoxStream;
/// A request to listen to external events.
///
@@ -168,8 +168,8 @@ pub trait Recipe<Hasher: std::hash::Hasher, Event> {
/// [`Recipe`]: trait.Recipe.html
fn stream(
self: Box<Self>,
- input: BoxStream<'static, Event>,
- ) -> BoxStream<'static, Self::Output>;
+ input: BoxStream<Event>,
+ ) -> BoxStream<Self::Output>;
}
struct Map<Hasher, Event, A, B> {
@@ -201,18 +201,16 @@ where
self.recipe.hash(state);
}
- fn stream(
- self: Box<Self>,
- input: BoxStream<'static, E>,
- ) -> futures::stream::BoxStream<'static, Self::Output> {
+ fn stream(self: Box<Self>, input: BoxStream<E>) -> BoxStream<Self::Output> {
use futures::StreamExt;
let mapper = self.mapper;
- self.recipe
- .stream(input)
- .map(move |element| mapper(element))
- .boxed()
+ Box::pin(
+ self.recipe
+ .stream(input)
+ .map(move |element| mapper(element)),
+ )
}
}
@@ -243,17 +241,15 @@ where
self.recipe.hash(state);
}
- fn stream(
- self: Box<Self>,
- input: BoxStream<'static, E>,
- ) -> futures::stream::BoxStream<'static, Self::Output> {
+ fn stream(self: Box<Self>, input: BoxStream<E>) -> BoxStream<Self::Output> {
use futures::StreamExt;
let value = self.value;
- self.recipe
- .stream(input)
- .map(move |element| (value.clone(), element))
- .boxed()
+ Box::pin(
+ self.recipe
+ .stream(input)
+ .map(move |element| (value.clone(), element)),
+ )
}
}