summaryrefslogtreecommitdiffstats
path: root/futures/src/subscription/tracker.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 17:35:47 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 21:37:17 +0700
commit5dab5a327ef643ee38ac3e42ab35212fff445631 (patch)
treef3b9f2e64a538f250e4785677f7985bd11e4ed3b /futures/src/subscription/tracker.rs
parent83c649b574d90667d23c8430baaebcd0ef933055 (diff)
downloadiced-5dab5a327ef643ee38ac3e42ab35212fff445631.tar.gz
iced-5dab5a327ef643ee38ac3e42ab35212fff445631.tar.bz2
iced-5dab5a327ef643ee38ac3e42ab35212fff445631.zip
Introduce `MaybeSend` trait in `iced_futures`
It allows to clean up all the `trait_aliases` modules!
Diffstat (limited to '')
-rw-r--r--futures/src/subscription/tracker.rs54
1 files changed, 7 insertions, 47 deletions
diff --git a/futures/src/subscription/tracker.rs b/futures/src/subscription/tracker.rs
index 01e0c105..421fb917 100644
--- a/futures/src/subscription/tracker.rs
+++ b/futures/src/subscription/tracker.rs
@@ -1,52 +1,8 @@
-use crate::{BoxFuture, Subscription};
+use crate::{BoxFuture, MaybeSend, Subscription};
use futures::{channel::mpsc, sink::Sink};
use std::{collections::HashMap, marker::PhantomData};
-#[cfg(not(target_arch = "wasm32"))]
-mod trait_aliases {
- use super::*;
-
- pub trait TrackerMessage: Send + 'static {}
-
- impl<T> TrackerMessage for T where T: Send + 'static {}
-
- pub trait TrackerMessageReceiver<Message: TrackerMessage>:
- Sink<Message, Error = mpsc::SendError> + Unpin + Send + Clone + 'static
- {
- }
-
- impl<Message: TrackerMessage, T> TrackerMessageReceiver<Message> for T where
- T: Sink<Message, Error = mpsc::SendError>
- + Unpin
- + Send
- + Clone
- + 'static
- {
- }
-}
-
-#[cfg(target_arch = "wasm32")]
-mod trait_aliases {
- use super::*;
-
- pub trait TrackerMessage: 'static {}
-
- impl<T> TrackerMessage for T where T: 'static {}
-
- pub trait TrackerMessageReceiver<Message: TrackerMessage>:
- Sink<Message, Error = mpsc::SendError> + Unpin + Clone + 'static
- {
- }
-
- impl<Message: TrackerMessage, T> TrackerMessageReceiver<Message> for T where
- T: Sink<Message, Error = mpsc::SendError> + Unpin + Clone + 'static
- {
- }
-}
-
-pub use trait_aliases::{TrackerMessage, TrackerMessageReceiver};
-
/// A registry of subscription streams.
///
/// If you have an application that continuously returns a [`Subscription`],
@@ -101,8 +57,12 @@ where
receiver: Receiver,
) -> Vec<BoxFuture<()>>
where
- Message: TrackerMessage,
- Receiver: TrackerMessageReceiver<Message>,
+ Message: 'static + MaybeSend,
+ Receiver: 'static
+ + Sink<Message, Error = mpsc::SendError>
+ + Unpin
+ + MaybeSend
+ + Clone,
{
use futures::{future::FutureExt, stream::StreamExt};