Skip to main content

CallToolResult

Struct CallToolResult 

Source
pub struct CallToolResult {
    pub content: Vec<Content>,
    pub is_error: Option<bool>,
    pub structured_content: Option<Value>,
    pub meta: Option<HashMap<String, Value>>,
}
Expand description

Re-exports of the canonical tool types from turbomcp_types. The result of a CallToolRequest.

Fields§

§content: Vec<Content>

The output of the tool as a series of content blocks. Required.

§is_error: Option<bool>

Whether the tool execution resulted in an error.

When true, all content blocks should be treated as error information; the message may span multiple text blocks for structured error reporting.

§structured_content: Option<Value>

Optional structured output conforming to the tool’s output_schema.

Tools that emit structured content SHOULD also include the serialized JSON in a TextContent block for clients that don’t support structured output.

§meta: Option<HashMap<String, Value>>

Optional metadata for the result.

For client applications and tools to pass context that should NOT be exposed to LLMs (tracking IDs, metrics, cache status, etc.).

Implementations§

Source§

impl CallToolResult

Source

pub fn text(text: impl Into<String>) -> CallToolResult

Create a successful result with a single text content block.

Source

pub fn error(message: impl Into<String>) -> CallToolResult

Create an error result with a single text content block and is_error = true.

Source

pub fn json<T>(value: &T) -> Result<CallToolResult, Error>
where T: Serialize,

Create a successful JSON result (pretty-printed text content).

Source

pub fn contents(contents: Vec<Content>) -> CallToolResult

Create a result with multiple content items.

Source

pub fn image( data: impl Into<String>, mime_type: impl Into<String>, ) -> CallToolResult

Create an image result (base64-encoded).

Source

pub fn all_text(&self) -> String

Extracts and concatenates all text content (newline-joined).

Returns an empty string if no text blocks are present.

Source

pub fn first_text(&self) -> Option<&str>

Returns the text of the first text block, if any.

Source

pub fn has_error(&self) -> bool

Whether is_error is explicitly true.

Trait Implementations§

Source§

impl Clone for CallToolResult

Source§

fn clone(&self) -> CallToolResult

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 CallToolResult

Source§

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

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

impl Default for CallToolResult

Source§

fn default() -> CallToolResult

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for CallToolResult

Source§

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

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

impl IntoToolResponse for CallToolResult

Source§

fn into_tool_response(self) -> CallToolResult

Convert this type into a CallToolResult
Source§

impl Serialize for CallToolResult

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

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<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> 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, 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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<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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T> MaybeSync for T
where T: Sync + ?Sized,