Skip to main content

ToolCall

Struct ToolCall 

Source
pub struct ToolCall {
    pub id: ToolCallId,
    pub provider: Option<ProviderCallId>,
    pub function: ToolFunction,
    pub signature: Option<String>,
    pub additional_params: Option<Value>,
}
Expand description

Describes a tool call with an id and function to call, generally produced by a provider.

Fields§

§id: ToolCallId

Rig’s correlation handle. Always present; minted when the provider issued none.

§provider: Option<ProviderCallId>

What the provider issued, if anything — the only identifiers that may go back on the wire as that provider’s handles. None means the provider issued no id (id-less wires such as Gemini REST or older Ollama daemons).

§function: ToolFunction

Function name and JSON arguments requested by the model.

§signature: Option<String>

Optional cryptographic signature for the tool call.

This field is used by some providers (e.g., Google) to provide a signature that can verify the authenticity and integrity of the tool call. When present, it allows verification that the tool call was actually generated by the model and has not been tampered with.

This is an optional, provider-specific feature and will be None for providers that don’t support tool call signatures.

§additional_params: Option<Value>

Additional provider-specific parameters to be sent to the completion model provider

Implementations§

Source§

impl ToolCall

Source

pub fn new(id: ToolCallId, function: ToolFunction) -> ToolCall

A call with an explicit correlation handle and no provider-issued id.

Source

pub fn from_wire(wire_id: impl Into<String>, function: ToolFunction) -> ToolCall

The single-identifier provider boundary: adopt the wire’s id when it issued one, mint when it did not (empty or absent ids mint).

Source

pub fn from_dual_wire( item_id: impl Into<String>, call_id: impl Into<String>, function: ToolFunction, ) -> ToolCall

The dual-identifier provider boundary (OpenAI Responses): item_id is the output-item handle (fc_…), call_id the correlator (call_…). The correlator drives rig’s id; empty ids mint.

Source

pub fn with_provider(self, provider: ProviderCallId) -> ToolCall

Attach provider-issued identifiers.

Source

pub fn wire_call_id(&self) -> &str

The identifier for a wire whose call-id slot is required: the provider-issued call_id when the provider issued one, else rig’s minted handle — always non-empty.

Wires whose id slot is optional (Gemini REST, gRPC) must read ToolCall::provider directly instead: minted handles never travel upstream there.

Source

pub fn with_signature(self, signature: Option<String>) -> ToolCall

Source

pub fn with_additional_params( self, additional_params: Option<Value>, ) -> ToolCall

Trait Implementations§

Source§

impl Clone for ToolCall

Source§

fn clone(&self) -> ToolCall

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ToolCall

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ToolCall

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<ToolCall, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<RawStreamingToolCall> for ToolCall

Source§

fn from(tool_call: RawStreamingToolCall) -> ToolCall

Converts to this type from the input type.
Source§

impl From<ToolCall> for Message

Source§

fn from(value: ToolCall) -> Message

Converts to this type from the input type.
Source§

impl From<ToolCall> for Part

Source§

fn from(tool_call: ToolCall) -> Part

Converts to this type from the input type.
Source§

impl From<ToolCall> for FunctionCall

Source§

fn from(tool_call: ToolCall) -> FunctionCall

Converts to this type from the input type.
Source§

impl From<ToolCall> for ToolCall

Source§

fn from(tool_call: ToolCall) -> ToolCall

Converts to this type from the input type.
Source§

impl From<ToolCall> for ToolCall

Source§

fn from(tool_call: ToolCall) -> ToolCall

Converts to this type from the input type.
Source§

impl From<ToolCall> for ToolCall

Source§

fn from(tool_call: ToolCall) -> ToolCall

Converts to this type from the input type.
Source§

impl PartialEq for ToolCall

Source§

fn eq(&self, other: &ToolCall) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for ToolCall

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ToolCall

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneDebuggableStorage for T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

Source§

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoToolOutput for T
where T: Serialize + 'static,

Source§

fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>

Convert this value without routing structured data through a string.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WasmCompatSend for T
where T: Send,

Source§

impl<T> WasmCompatSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more