ai_lib_rust/types/
tool.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct ToolDefinition {
8 #[serde(rename = "type")]
9 pub tool_type: String, pub function: FunctionDefinition,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct FunctionDefinition {
15 pub name: String,
16 pub description: Option<String>,
17 pub parameters: Option<serde_json::Value>, }
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct ToolCall {
23 pub id: String,
24 pub name: String,
25 pub arguments: serde_json::Value,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct ToolResult {
31 pub tool_use_id: String,
32 pub content: serde_json::Value,
33 #[serde(default)]
34 pub is_error: bool,
35}