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
//! serde 集中件(仅 `feature = "serde"` 编入)。
//!
//! 结构体/枚举侧仅用 `#[cfg_attr(feature = "serde", derive(...))]` 的
//! 标准标注加自动派生:字段名即 Python 字段名(snake_case),线值与
//! `as_str()` 同形;本文件提供 JSON 收发的通用便捷层与契约示例。
//!
//! 注意:枚举 serde 派生认**英文线值**;旧中文线值仅在 `FromStr` 容差
//! (今日线值决策,DESIGN.md 决定 3),不被 serde 反序列化路径接受。

use serde::{Serialize, de::DeserializeOwned};

/// 序列化为 JSON 文本(紧凑)。
pub fn to_json<T: Serialize>(value: &T) -> String {
    serde_json::to_string(value).expect("ek-data: serde to_json 不应失败(纯内存结构)")
}

/// 从 JSON 文本反序列化。
pub fn from_json<T: DeserializeOwned>(text: &str) -> Result<T, serde_json::Error> {
    serde_json::from_str(text)
}