diff options
Diffstat (limited to 'futures')
-rw-r--r-- | futures/src/lib.rs | 4 | ||||
-rw-r--r-- | futures/src/maybe.rs (renamed from futures/src/maybe_send.rs) | 16 |
2 files changed, 17 insertions, 3 deletions
diff --git a/futures/src/lib.rs b/futures/src/lib.rs index d54ba18a..b0acb76f 100644 --- a/futures/src/lib.rs +++ b/futures/src/lib.rs @@ -15,7 +15,7 @@ pub use futures; pub use iced_core as core; -mod maybe_send; +mod maybe; mod runtime; pub mod backend; @@ -25,7 +25,7 @@ pub mod keyboard; pub mod subscription; pub use executor::Executor; -pub use maybe_send::MaybeSend; +pub use maybe::{MaybeSend, MaybeSync}; pub use platform::*; pub use runtime::Runtime; pub use subscription::Subscription; diff --git a/futures/src/maybe_send.rs b/futures/src/maybe.rs index a6670f0e..1a0bd1d1 100644 --- a/futures/src/maybe_send.rs +++ b/futures/src/maybe.rs @@ -6,6 +6,13 @@ mod platform { pub trait MaybeSend: Send {} impl<T> MaybeSend for T where T: Send {} + + /// An extension trait that enforces `Sync` only on native platforms. + /// + /// Useful to write cross-platform async code! + pub trait MaybeSync: Sync {} + + impl<T> MaybeSync for T where T: Sync {} } #[cfg(target_arch = "wasm32")] @@ -16,6 +23,13 @@ mod platform { pub trait MaybeSend {} impl<T> MaybeSend for T {} + + /// An extension trait that enforces `Send` only on native platforms. + /// + /// Useful to write cross-platform async code! + pub trait MaybeSync {} + + impl<T> MaybeSync for T {} } -pub use platform::MaybeSend; +pub use platform::{MaybeSend, MaybeSync}; |