pub trait ToolDyn: WasmCompatSend + WasmCompatSync {
// Required methods
fn name(&self) -> &str;
fn definition(&self) -> ToolDefinition;
fn call_dyn<'a>(
&'a self,
input: Value,
ctx: &'a ToolContext,
) -> WasmBoxedFuture<'a, Result<ToolOutput, ToolError>>;
}Expand description
Type-erased tool for dynamic dispatch. Blanket-implemented for all Tool impls.
This enables heterogeneous tool collections (HashMap<String, Arc<dyn ToolDyn>>)
while preserving type safety at the implementation level.
Required Methods§
Sourcefn definition(&self) -> ToolDefinition
fn definition(&self) -> ToolDefinition
The tool definition (name, description, input schema).
Sourcefn call_dyn<'a>(
&'a self,
input: Value,
ctx: &'a ToolContext,
) -> WasmBoxedFuture<'a, Result<ToolOutput, ToolError>>
fn call_dyn<'a>( &'a self, input: Value, ctx: &'a ToolContext, ) -> WasmBoxedFuture<'a, Result<ToolOutput, ToolError>>
Execute the tool with a JSON value input, returning a generic output.