Skip to main content

Tool

Trait Tool 

Source
pub trait Tool: Send + Sync {
    // Required methods
    fn descriptor(&self) -> &ToolDescriptor;
    fn invoke(
        &self,
        input: Value,
        context: ToolContext,
    ) -> ToolFuture<'_, Result<ToolOutput, ToolError>>;
}
Expand description

Object-safe execution boundary implemented by tools.

Required Methods§

Source

fn descriptor(&self) -> &ToolDescriptor

Returns the tool’s immutable semantic contract.

Source

fn invoke( &self, input: Value, context: ToolContext, ) -> ToolFuture<'_, Result<ToolOutput, ToolError>>

Executes one invocation.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§

Source§

impl<Input, Handler, HandlerFuture> Tool for FunctionTool<Input, ToolOutput, Handler>
where Input: DeserializeOwned + JsonSchema + Send + 'static, Handler: Fn(Input, ToolContext) -> HandlerFuture + Send + Sync, HandlerFuture: Future<Output = Result<ToolOutput, ToolError>> + Send + 'static,

Source§

impl<Input, Output, Handler, HandlerFuture> Tool for FunctionTool<Input, Output, Handler>
where Input: DeserializeOwned + JsonSchema + Send + 'static, Output: JsonSchema + Serialize + Send + 'static, Handler: Fn(Input, ToolContext) -> HandlerFuture + Send + Sync, HandlerFuture: Future<Output = Result<Output, ToolError>> + Send + 'static,