pub struct ToolCall {
pub id: String,
pub call_type: String,
pub function: Option<FunctionCall>,
pub text: Option<String>,
pub thought_signature: Option<String>,
}Expand description
Universal tool call that matches OpenAI/Anthropic/Gemini specifications
Fields§
§id: StringUnique identifier for this tool call (e.g., “call_123”)
call_type: StringThe type of tool call: “function”, “custom” (GPT-5 freeform), or other
function: Option<FunctionCall>Function call details (for function-type tools)
text: Option<String>Raw text payload (for custom freeform tools in GPT-5)
thought_signature: Option<String>Gemini-specific thought signature for maintaining reasoning context
Implementations§
Source§impl ToolCall
impl ToolCall
Sourcepub fn function(id: String, name: String, arguments: String) -> Self
pub fn function(id: String, name: String, arguments: String) -> Self
Create a new function tool call
Sourcepub fn function_with_namespace(
id: String,
namespace: Option<String>,
name: String,
arguments: String,
) -> Self
pub fn function_with_namespace( id: String, namespace: Option<String>, name: String, arguments: String, ) -> Self
Create a new function tool call with an optional namespace.
Sourcepub fn custom(id: String, name: String, text: String) -> Self
pub fn custom(id: String, name: String, text: String) -> Self
Create a new custom tool call with raw text payload (GPT-5 freeform)
Sourcepub fn is_custom(&self) -> bool
pub fn is_custom(&self) -> bool
Returns true when this tool call uses GPT-5 custom/freeform semantics.
Sourcepub fn tool_name(&self) -> Option<&str>
pub fn tool_name(&self) -> Option<&str>
Returns the tool name when the call includes function details.
Sourcepub fn raw_input(&self) -> Option<&str>
pub fn raw_input(&self) -> Option<&str>
Returns the raw payload text exactly as emitted by the model.
Sourcepub fn parsed_arguments(&self) -> Result<Value, Error>
pub fn parsed_arguments(&self) -> Result<Value, Error>
Parse the arguments as JSON Value (for function-type tools)
Sourcepub fn execution_arguments(&self) -> Result<Value, Error>
pub fn execution_arguments(&self) -> Result<Value, Error>
Returns the execution payload for this tool call.
Function tools keep their JSON semantics. Custom tools execute with their raw text payload wrapped as a JSON string value so freeform inputs can flow through the existing tool pipeline.