ek-data 0.2.8

Trading data contracts for the enkeep ek ecosystem: venue enums, zero-dep epoch-nanosecond time, decimal-exact price rounding, vt-symbol convention, bus event dictionary, tick/bar/order/trade/position/account/contract objects and request objects (Python enkeep_trade trader/object.py + constant.py, faithfully ported).
Documentation
//! 总线事件字典:enkeep 原稿 `trader/event.py` 的字面常量移植。
//!
//! 命名规则(enkeep 实况):
//! - **前缀型**(逐合约流,以 `.` 结尾,后接 vt_symbol):
//!   `eTick.` / `eBar.` / `eOrder.` / `eTrade.` / `ePosition.` /
//!   `eAccount.` / `eContract.`
//! - **一字面型**(全局流):`eLog` 等。
//!
//! 注意区分:`eTick.` 属业务事件字典,与前两 crate 的
//! `ePlugUp.*`(后缀型)、`eReq.<target>` 与 `eTimer` 属 ek-core/ek-event 域。
//! 专嘱流(eTradeSync./ePositionDone./eQuote./eProduct./eSector.… 与
//! 下载/股票池/K线图等 UI 流)属 OMS/UI 批次,defer(DESIGN.md §2)。

/// 行情逐合约流,载荷 [`crate::tick::TickData`](`event.py:7`)。
pub const EVENT_TICK: &str = "eTick.";
/// K 线逐合约流,载荷 [`crate::bar::BarData`](`event.py:12`)。
pub const EVENT_BAR: &str = "eBar.";
/// 委托逐合约流,载荷 [`crate::order::OrderData`](`event.py:14`)。
pub const EVENT_ORDER: &str = "eOrder.";
/// 成交逐合约流,载荷 [`crate::trade::TradeData`](`event.py:13`)。
pub const EVENT_TRADE: &str = "eTrade.";
/// 持仓逐合约流,载荷 [`crate::position::PositionData`](`event.py:15`)。
pub const EVENT_POSITION: &str = "ePosition.";
/// 账户流,载荷 [`crate::account::AccountData`](`event.py:18`)。
pub const EVENT_ACCOUNT: &str = "eAccount.";
/// 合约流,载荷 [`crate::contract::ContractData`](`event.py:20`)。
pub const EVENT_CONTRACT: &str = "eContract.";
/// 日志全局流,载荷 [`crate::log::LogData`](`event.py:24`;enkeep 原稿不带点)。
pub const EVENT_LOG: &str = "eLog";

#[cfg(test)]
mod tests {
    use super::*;

    /// 前缀型必须以 `.` 结尾(逐合约前缀路由的守卫;event.py 字面值逐一对齐)。
    #[test]
    fn prefix_consts_end_with_dot() {
        assert_eq!(EVENT_TICK, "eTick.");
        assert_eq!(EVENT_BAR, "eBar.");
        assert_eq!(EVENT_ORDER, "eOrder.");
        assert_eq!(EVENT_TRADE, "eTrade.");
        assert_eq!(EVENT_POSITION, "ePosition.");
        assert_eq!(EVENT_ACCOUNT, "eAccount.");
        assert_eq!(EVENT_CONTRACT, "eContract.");
    }

    /// 一字面型不得带点:`eLog`(event.py:24 原稿实况)。
    #[test]
    fn exact_consts_have_no_dot() {
        assert_eq!(EVENT_LOG, "eLog");
    }
}