2022-01-28 17:35:47 +07:00
|
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
|
|
|
mod platform {
|
|
|
|
|
/// An extension trait that enforces `Send` only on native platforms.
|
|
|
|
|
///
|
2024-01-18 11:21:41 +01:00
|
|
|
/// Useful for writing cross-platform async code!
|
2022-01-28 17:35:47 +07:00
|
|
|
pub trait MaybeSend: Send {}
|
|
|
|
|
|
|
|
|
|
impl<T> MaybeSend for T where T: Send {}
|
2024-01-18 09:55:27 +01:00
|
|
|
|
|
|
|
|
/// An extension trait that enforces `Sync` only on native platforms.
|
|
|
|
|
///
|
2024-01-18 11:21:41 +01:00
|
|
|
/// Useful for writing cross-platform async code!
|
2024-01-18 09:55:27 +01:00
|
|
|
pub trait MaybeSync: Sync {}
|
|
|
|
|
|
|
|
|
|
impl<T> MaybeSync for T where T: Sync {}
|
2022-01-28 17:35:47 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
|
|
|
mod platform {
|
|
|
|
|
/// An extension trait that enforces `Send` only on native platforms.
|
|
|
|
|
///
|
2024-01-18 11:21:41 +01:00
|
|
|
/// Useful for writing cross-platform async code!
|
2022-01-28 17:35:47 +07:00
|
|
|
pub trait MaybeSend {}
|
|
|
|
|
|
|
|
|
|
impl<T> MaybeSend for T {}
|
2024-01-18 09:55:27 +01:00
|
|
|
|
2024-01-18 11:02:53 +01:00
|
|
|
/// An extension trait that enforces `Sync` only on native platforms.
|
2024-01-18 09:55:27 +01:00
|
|
|
///
|
2024-01-18 11:21:41 +01:00
|
|
|
/// Useful for writing cross-platform async code!
|
2024-01-18 09:55:27 +01:00
|
|
|
pub trait MaybeSync {}
|
|
|
|
|
|
|
|
|
|
impl<T> MaybeSync for T {}
|
2022-01-28 17:35:47 +07:00
|
|
|
}
|
|
|
|
|
|
2024-01-18 09:55:27 +01:00
|
|
|
pub use platform::{MaybeSend, MaybeSync};
|