use std::{future::Future, pin::Pin};
#[cfg(not(target_family = "wasm"))]
pub trait WasmCompatSend: Send {}
#[cfg(not(target_family = "wasm"))]
impl<T: Send> WasmCompatSend for T {}
#[cfg(target_family = "wasm")]
pub trait WasmCompatSend {}
#[cfg(target_family = "wasm")]
impl<T> WasmCompatSend for T {}
#[cfg(not(target_family = "wasm"))]
pub trait WasmCompatSync: Sync {}
#[cfg(not(target_family = "wasm"))]
impl<T: Sync> WasmCompatSync for T {}
#[cfg(target_family = "wasm")]
pub trait WasmCompatSync {}
#[cfg(target_family = "wasm")]
impl<T> WasmCompatSync for T {}
pub type BoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + 'a>>;