diff options
| author | 2021-10-21 22:42:14 +0300 | |
|---|---|---|
| committer | 2022-01-28 21:37:14 +0700 | |
| commit | bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a (patch) | |
| tree | 8ea0d2ff0a0d780ff763d7491fc67878f549a615 /futures/src/subscription | |
| parent | c75ed37148b019358b0297171cf31b2577eeb9ae (diff) | |
| download | iced-bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a.tar.gz iced-bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a.tar.bz2 iced-bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a.zip  | |
Experimental wgpu WebGL backend support
- Added missing `draw_cache_align_4x4` call for `brush_glyph` on wasm32 target
- Added WebGL support to `integratio_wgpu` example
- Fixed test.yml CI workflow
- Removed spir-v shader in `integration_wgpu`; Fixed formatting
- Removed redundant `BoxStream` typedef
Diffstat (limited to '')
| -rw-r--r-- | futures/src/subscription/tracker.rs | 52 | 
1 files changed, 46 insertions, 6 deletions
diff --git a/futures/src/subscription/tracker.rs b/futures/src/subscription/tracker.rs index 3a8d4a87..01e0c105 100644 --- a/futures/src/subscription/tracker.rs +++ b/futures/src/subscription/tracker.rs @@ -3,6 +3,50 @@ use crate::{BoxFuture, 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`], @@ -57,12 +101,8 @@ where          receiver: Receiver,      ) -> Vec<BoxFuture<()>>      where -        Message: 'static + Send, -        Receiver: 'static -            + Sink<Message, Error = mpsc::SendError> -            + Unpin -            + Send -            + Clone, +        Message: TrackerMessage, +        Receiver: TrackerMessageReceiver<Message>,      {          use futures::{future::FutureExt, stream::StreamExt};  | 
