Skip to main content

ToolArgParser

Trait ToolArgParser 

Source
pub trait ToolArgParser: Sized {
    // Required method
    fn parse(value: Value) -> Result<Self, Error>;
}
Expand description

工具参数解析 trait — 将原始 JSON Value 反序列化为强类型结构体。

为什么需要这个 trait?

  • #[tool] 宏生成的代码不知道 serde_json 的存在
  • 宏只依赖稳定的 ToolArgParser::parse() API
  • 所有解析策略(JSON、MessagePack、CBOR…)集中在 core 层
  • 以后更换序列化格式,只需修改此 trait 的实现

依赖方向:

lellm-derive
      │
      ▼
ToolArgParser::parse()
      │
      ▼
lellm-core
      │
      ▼
serde_json

Required Methods§

Source

fn parse(value: Value) -> Result<Self, Error>

从原始 JSON Value 解析工具参数。

解析失败时返回 serde_json::Error,调用方负责转换为 ToolError

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T> ToolArgParser for T
where T: for<'de> Deserialize<'de>,