From bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a Mon Sep 17 00:00:00 2001 From: Vladyslav Nikonov Date: Thu, 21 Oct 2021 22:42:14 +0300 Subject: 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 --- futures/src/subscription/tracker.rs | 52 ++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) (limited to 'futures/src/subscription/tracker.rs') 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 TrackerMessage for T where T: Send + 'static {} + + pub trait TrackerMessageReceiver: + Sink + Unpin + Send + Clone + 'static + { + } + + impl TrackerMessageReceiver for T where + T: Sink + + Unpin + + Send + + Clone + + 'static + { + } +} + +#[cfg(target_arch = "wasm32")] +mod trait_aliases { + use super::*; + + pub trait TrackerMessage: 'static {} + + impl TrackerMessage for T where T: 'static {} + + pub trait TrackerMessageReceiver: + Sink + Unpin + Clone + 'static + { + } + + impl TrackerMessageReceiver for T where + T: Sink + 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> where - Message: 'static + Send, - Receiver: 'static - + Sink - + Unpin - + Send - + Clone, + Message: TrackerMessage, + Receiver: TrackerMessageReceiver, { use futures::{future::FutureExt, stream::StreamExt}; -- cgit From 5dab5a327ef643ee38ac3e42ab35212fff445631 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 28 Jan 2022 17:35:47 +0700 Subject: Introduce `MaybeSend` trait in `iced_futures` It allows to clean up all the `trait_aliases` modules! --- futures/src/subscription/tracker.rs | 54 +++++-------------------------------- 1 file changed, 7 insertions(+), 47 deletions(-) (limited to 'futures/src/subscription/tracker.rs') 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 TrackerMessage for T where T: Send + 'static {} - - pub trait TrackerMessageReceiver: - Sink + Unpin + Send + Clone + 'static - { - } - - impl TrackerMessageReceiver for T where - T: Sink - + Unpin - + Send - + Clone - + 'static - { - } -} - -#[cfg(target_arch = "wasm32")] -mod trait_aliases { - use super::*; - - pub trait TrackerMessage: 'static {} - - impl TrackerMessage for T where T: 'static {} - - pub trait TrackerMessageReceiver: - Sink + Unpin + Clone + 'static - { - } - - impl TrackerMessageReceiver for T where - T: Sink + 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> where - Message: TrackerMessage, - Receiver: TrackerMessageReceiver, + Message: 'static + MaybeSend, + Receiver: 'static + + Sink + + Unpin + + MaybeSend + + Clone, { use futures::{future::FutureExt, stream::StreamExt}; -- cgit