Skip to main content

ToolResult

Enum ToolResult 

Source
pub enum ToolResult {
    Text(String),
    Json(Value),
    Image {
        format: ImageFormat,
        data: Vec<u8>,
    },
    Document {
        format: DocumentFormat,
        data: Vec<u8>,
        name: Option<String>,
    },
}
Expand description

Result types that tools can return.

Tools can return different content types depending on their purpose. All providers support Text and Json. Image and Document support varies by provider (Bedrock supports all types; future providers may fall back to text descriptions).

Variants§

§

Text(String)

Plain text response

§

Json(Value)

Structured JSON data - use for complex responses

§

Image

Image data - supported by Bedrock (Claude, Nova models)

Fields

§data: Vec<u8>

Raw image bytes (not base64 encoded)

§

Document

Document data - supported by Bedrock (Claude, Nova models)

Fields

§data: Vec<u8>

Raw document bytes

§name: Option<String>

Optional document name/filename

Implementations§

Source§

impl ToolResult

Source

pub fn json<T: Serialize>(value: T) -> Result<Self, Error>

Create a JSON result from any serializable type

Source

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

Create a text result from a string

Source

pub fn image(format: ImageFormat, data: Vec<u8>) -> Self

Create an image result from raw bytes

Source

pub fn document(format: DocumentFormat, data: Vec<u8>) -> Self

Create a document result from raw bytes

Source

pub fn document_with_name( format: DocumentFormat, data: Vec<u8>, name: impl Into<String>, ) -> Self

Create a document result with a filename

Source

pub fn as_text(&self) -> String

Get the text content if this is a Text variant, or convert to string description

Source

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

Get a reference to the text content if this is a Text variant

Trait Implementations§

Source§

impl Clone for ToolResult

Source§

fn clone(&self) -> ToolResult

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ToolResult

Source§

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

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

impl<'de> Deserialize<'de> for ToolResult

Source§

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

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

impl From<&str> for ToolResult

Source§

fn from(s: &str) -> Self

Converts to this type from the input type.
Source§

impl From<String> for ToolResult

Convert strings directly to ToolResult::Text

Source§

fn from(s: String) -> Self

Converts to this type from the input type.
Source§

impl Serialize for ToolResult

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::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> 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, 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> 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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,