Skip to main content

Module tool_enums

Module tool_enums 

Source
Expand description

v1.4.84 §5 B2: 结构化 MCP tool enum 类型 + 泛型 int/string 双接 deserializer

背景: v1.4.83 在 tools.rs 加了 deser_int_or_order_type_str 单一 deserializer,让 OrderType 字段接受 int OR string enum。本模块把该 pattern 泛化到 5 个 enum 类型:

Enumprotovariants
MarketEnumQot_Common.QotMarket11
SubTypeEnumQot_Common.SubType17
OrderTypeEnumTrd_Common.OrderType19 (含 v1.4.53 条件单)
PriceReminderOpEnumQot_SetPriceReminder.SetPriceReminderOp6

设计要点:

  • 所有 enum impl ToolEnum trait,统一 from_i32 / from_str / as_i32 / all_int_values / all_string_values 接口
  • deser_int_or_enum_str 泛型 deserializer:T: ToolEnum,接受 JSON integer OR string
  • Serialize 为 i32(backward-compat,旧 int-based 客户端不破坏)
  • String 名对齐 proto 枚举 suffix(OrderBook / KL_Day / NORMAL 等), 方便 LLM agent 对照 proto docs;同时接受合理 alias

当前接入状态:

现有 MCP tool arg structs 已在 tool_args/ 下按需接入这些 wrapper: market / sub_type_list / trd_market / order_type 等字段可接受 int 或 string。handler runtime parser 也已完成主市场与高级订单类型收敛; fund market 仅在 read/view-only endpoint 暴露,trade-write runtime 会 fail closed。

§dead_code allow 原因

部分 wrapper 只被特定 feature/test matrix 间接触发;保留集中 enum module 能让 schema/runtime drift guard 在一个位置覆盖所有 MCP enum parser。

Re-exports§

pub use market_enum::MarketEnum;
pub use order_type_enum::OrderTypeEnum;
pub use price_reminder_op_enum::PriceReminderOpEnum;
pub use subtype_enum::SubTypeEnum;
pub use trd_market_enum::TrdMarketEnum;

Modules§

market_enum 🔒
Split from tool_enums.rs: MarketEnum.
order_type_enum 🔒
Split from tool_enums.rs: OrderTypeEnum.
price_reminder_op_enum 🔒
Split from tool_enums.rs: PriceReminderOpEnum.
subtype_enum 🔒
Split from tool_enums.rs: SubTypeEnum.
trd_market_enum 🔒
Split from tool_enums.rs: TrdMarketEnum.

Traits§

ToolEnum
v1.4.84 §5 B2: 统一 MCP tool enum 接口,让 deser_int_or_enum_str 可泛型化。

Functions§

deser_int_or_enum_str
v1.4.84 §5 B2: 泛型 int-or-string enum deserializer。
deser_market_as_i32
v1.4.84 §5 B2: MarketEnum 双接 (i32 or string) → i32.
deser_market_as_option_i32
v1.4.84 §5 B2: Optional 双接 → Option.
deser_order_type_as_string
v1.4.90 P0-E: OrderTypeEnum 双接 (int OR string) → 标准大写 String.
deser_price_reminder_op_as_i32
v1.4.84 §5 B2: PriceReminderOpEnum 双接 → i32.
deser_subtype_list_as_vec_i32
v1.4.84 §5 B2: Vec 双接 (mixed int/string ok in same array) → Vec.
deser_trd_market_as_option_string
Optional TrdMarketEnum 双接 (int OR string) → Option.
deser_trd_market_as_string
v1.4.90 P0-E + P1-G: TrdMarketEnum 双接 (int OR string) → 标准大写 String.