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 类型:
| Enum | proto | variants |
|---|---|---|
MarketEnum | Qot_Common.QotMarket | 11 |
SubTypeEnum | Qot_Common.SubType | 17 |
OrderTypeEnum | Trd_Common.OrderType | 19 (含 v1.4.53 条件单) |
PriceReminderOpEnum | Qot_SetPriceReminder.SetPriceReminderOp | 6 |
设计要点:
- 所有 enum impl
ToolEnumtrait,统一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§
- Tool
Enum - 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.