iced_futures/
maybe.rs

1#[cfg(not(target_arch = "wasm32"))]
2mod platform {
3    /// An extension trait that enforces `Send` only on native platforms.
4    ///
5    /// Useful for writing cross-platform async code!
6    pub trait MaybeSend: Send {}
7
8    impl<T> MaybeSend for T where T: Send {}
9
10    /// An extension trait that enforces `Sync` only on native platforms.
11    ///
12    /// Useful for writing cross-platform async code!
13    pub trait MaybeSync: Sync {}
14
15    impl<T> MaybeSync for T where T: Sync {}
16}
17
18#[cfg(target_arch = "wasm32")]
19mod platform {
20    /// An extension trait that enforces `Send` only on native platforms.
21    ///
22    /// Useful for writing cross-platform async code!
23    pub trait MaybeSend {}
24
25    impl<T> MaybeSend for T {}
26
27    /// An extension trait that enforces `Sync` only on native platforms.
28    ///
29    /// Useful for writing cross-platform async code!
30    pub trait MaybeSync {}
31
32    impl<T> MaybeSync for T {}
33}
34
35pub use platform::{MaybeSend, MaybeSync};