Skip to main content

helix_core/
platform.rs

1//! # platform.rs
2//!
3//! 三栖 Send/Sync 管理——纯 cfg trait 别名,**零运行时依赖**。
4//!
5//! ## 设计说明
6//!
7//! - native (non-wasm32):`MaybeSend = Send`,`MaybeSync = Sync`(多线程安全)
8//! - wasm32:`MaybeSend = ()`,`MaybeSync = ()`(单线程,Send 约束无意义)
9//!
10//! ## spawn 能力不在此处
11//!
12//! `tokio::spawn` 和 `wasm_bindgen_futures::spawn_local` 不属于 helix-core。
13//! 它们由各 driver 的 `engine_loop.rs` 持有,helix-core 保持零运行时依赖。
14
15// ─── native(非 wasm32)─────────────────────────────────────────────────────
16
17#[cfg(not(target_arch = "wasm32"))]
18pub trait MaybeSend: Send {}
19
20#[cfg(not(target_arch = "wasm32"))]
21impl<T: Send> MaybeSend for T {}
22
23#[cfg(not(target_arch = "wasm32"))]
24pub trait MaybeSync: Sync {}
25
26#[cfg(not(target_arch = "wasm32"))]
27impl<T: Sync> MaybeSync for T {}
28
29// ─── wasm32(单线程,Send/Sync 无意义)─────────────────────────────────────
30
31#[cfg(target_arch = "wasm32")]
32pub trait MaybeSend {}
33
34#[cfg(target_arch = "wasm32")]
35impl<T> MaybeSend for T {}
36
37#[cfg(target_arch = "wasm32")]
38pub trait MaybeSync {}
39
40#[cfg(target_arch = "wasm32")]
41impl<T> MaybeSync for T {}