1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! native 桥(0.2.0):把官方 CTP C++ SDK 接到 Rust 面。
//!
//! ## 分层
//!
//! - [`common`]:跨 ABI 共用工具(UTF-8 过境的 C 字符串搬运、shim 最近错误)。
//! - [`pod`]:CTP 结构体 ↔ 跨 ABI POD 的定义与转换 —— 字段抽取在 **C++ 侧**
//! (字段名/类型写错 = 编译失败),Rust 只认 POD、不镜像 CTP 布局(D-NATIVE-EXTRACT)。
//! - [`md`] / [`td`]:MD/TD 面的 `extern "C"` 声明、回调表与 RAII 句柄 ——
//! **本 crate 唯一的 `unsafe` 面**。
//! - [`transport`]:[`CtpTransport`](crate::plugin::CtpTransport) 的官方实现,
//! 含 SPI 回调回插件的线程模型与双相接线。
//! - 上层(plugin)只见安全类型,不见裸指针。
//!
//! ## 跨 ABI 纪律(与 `native/shim/ek_ctp_shim.h` 对读)
//!
//! 1. 只传 POD:整数、C 字符串、不透明句柄、`#[repr(C)]` 回调表与事件 POD。
//! 2. **绝不**传 `std::string`/`std::vector`/C++ 类指针:CTP 的 DLL 由旧 MSVC 构建,
//! 跨版本传 STL 对象是未定义行为。
//! 3. 回调表按值拷贝进 C++ 侧对象,故 Rust 侧可安全传临时量。
//! 4. 字符串一律 **UTF-8** 过境;GBK↔UTF-8 的转换全在 shim 内(D-NATIVE-ENC),
//! 因为 CTP 的 `char[]` 字段是本地码页。
//! 5. 每个 POD 都有 `ek_pod_sizeof_*` 与 Rust `size_of` 的比对断言,
//! 另有离线自检(`ek_pod_selftest_*`)逐字段验证映射。
//!
//! ## 范围
//!
//! M2 = MD 行情体落地 + TD 全面 + 传输层实现。**不含**:Linux/GCC 路径、SimNow
//! 实连复核(属 M3)、询价/FENS(原稿未用)。
pub use last_error;
pub use ;
pub use ;