ek-ctp 0.12.3

CTP gateway for the enkeep ek ecosystem: MD/TD session drivers mapping CTP wire rows onto ek-data objects over the ek-event bus (pure-logic core; the CTP SDK ships inside this package and native bridging lands behind the optional `native` feature).
Documentation
//! 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 mod common;
pub mod md;
pub mod pod;
pub mod td;
pub mod transport;

pub use common::last_error;
pub use md::{
    MdApi, MdSpiCallbacks, api_version as md_api_version, callbacks_sizeof as md_callbacks_sizeof,
};
pub use td::{
    TdApi, TdSpiCallbacks, api_version as td_api_version, callbacks_sizeof as td_callbacks_sizeof,
};