pub trait Toolset:
Send
+ Sync
+ 'static {
type ToolCall: ToolCallWrapper + Clone + Debug + Eq + PartialEq + Send + Sync + 'static;
type Selector: ToolSelector<Self>;
// Required methods
fn definitions() -> &'static [ToolDef];
fn parse_tool_call(
metadata: ToolMetadata,
) -> Result<Self::ToolCall, ToolCallError>;
// Provided method
fn definitions_for<I>(selectors: I) -> Vec<&'static ToolDef>
where I: IntoIterator<Item = Self::Selector> { ... }
}Required Associated Types§
type ToolCall: ToolCallWrapper + Clone + Debug + Eq + PartialEq + Send + Sync + 'static
type Selector: ToolSelector<Self>
Required Methods§
fn definitions() -> &'static [ToolDef]
fn parse_tool_call( metadata: ToolMetadata, ) -> Result<Self::ToolCall, ToolCallError>
Provided Methods§
fn definitions_for<I>(selectors: I) -> Vec<&'static ToolDef>where
I: IntoIterator<Item = Self::Selector>,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.