Skip to main content

huskarl_core/platform/
not_wasm32.rs

1//! Marker traits for non-wasm32 platforms.
2//!
3//! Non-WASM platforms are assumed to be multi-threaded, so these traits require `Send` and `Sync` bounds.
4
5/// Marker trait for types that may be `Send`, depending on platform.
6pub trait MaybeSend: Send {}
7impl<T: Send> MaybeSend for T {}
8
9/// Marker trait for types that may be `Sync`, depending on platform.
10pub trait MaybeSync: Sync {}
11impl<T: Sync> MaybeSync for T {}
12
13/// Marker trait for types that may be `Send + Sync`, depending on platform.
14pub trait MaybeSendSync: Send + Sync {}
15impl<T: Send + Sync> MaybeSendSync for T {}
16
17/// Marker trait for Future types that may be `Send`, depending on platform.
18pub trait MaybeSendFuture: Future + Send {}
19impl<T: Future + Send> MaybeSendFuture for T {}