Skip to main content

cqrs_rust_lib/
wasm_compat.rs

1// Conditional Send/Sync traits for WASM compatibility.
2//
3// On native targets: MaybeSend = Send, MaybeSync = Sync.
4// On wasm32 targets: MaybeSend/MaybeSync are no-ops.
5
6#[cfg(not(target_arch = "wasm32"))]
7pub trait MaybeSend: Send {}
8#[cfg(not(target_arch = "wasm32"))]
9impl<T: Send> MaybeSend for T {}
10
11#[cfg(target_arch = "wasm32")]
12pub trait MaybeSend {}
13#[cfg(target_arch = "wasm32")]
14impl<T> MaybeSend for T {}
15
16#[cfg(not(target_arch = "wasm32"))]
17pub trait MaybeSync: Sync {}
18#[cfg(not(target_arch = "wasm32"))]
19impl<T: Sync> MaybeSync for T {}
20
21#[cfg(target_arch = "wasm32")]
22pub trait MaybeSync {}
23#[cfg(target_arch = "wasm32")]
24impl<T> MaybeSync for T {}