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};