pub struct CallToolResult {
pub content: Vec<Content>,
pub is_error: Option<bool>,
pub structured_content: Option<Value>,
pub _meta: Option<Meta>,
}Expand description
Tool call result
Fields§
§content: Vec<Content>§is_error: Option<bool>§structured_content: Option<Value>§_meta: Option<Meta>Implementations§
Source§impl CallToolResult
impl CallToolResult
pub fn success(content: Vec<Content>) -> Self
pub fn error(content: Vec<Content>) -> Self
pub fn text(text: impl Into<String>) -> Self
pub fn error_text(text: impl Into<String>) -> Self
Sourcepub fn input_validation_error(
field: impl Into<String>,
message: impl Into<String>,
) -> Self
pub fn input_validation_error( field: impl Into<String>, message: impl Into<String>, ) -> Self
Create an input validation error result (MCP 2025-11-25)
Per the MCP 2025-11-25 spec, input validation errors should be returned
as tool execution errors (with is_error: true) rather than protocol
errors. This enables the LLM to self-correct based on the error feedback.
§Example
use pulseengine_mcp_protocol::CallToolResult;
// When validating tool arguments fails:
let result = CallToolResult::input_validation_error(
"location",
"Expected a valid city name, got empty string"
);Sourcepub fn structured(content: Vec<Content>, structured_content: Value) -> Self
pub fn structured(content: Vec<Content>, structured_content: Value) -> Self
Create a success result with structured content
Sourcepub fn structured_error(
content: Vec<Content>,
structured_content: Value,
) -> Self
pub fn structured_error( content: Vec<Content>, structured_content: Value, ) -> Self
Create an error result with structured content
Sourcepub fn text_with_structured(
text: impl Into<String>,
structured_content: Value,
) -> Self
pub fn text_with_structured( text: impl Into<String>, structured_content: Value, ) -> Self
Create a result with both text and structured content
Trait Implementations§
Source§impl Clone for CallToolResult
impl Clone for CallToolResult
Source§fn clone(&self) -> CallToolResult
fn clone(&self) -> CallToolResult
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CallToolResult
impl Debug for CallToolResult
Source§impl<'de> Deserialize<'de> for CallToolResult
impl<'de> Deserialize<'de> for CallToolResult
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CallToolResult
impl RefUnwindSafe for CallToolResult
impl Send for CallToolResult
impl Sync for CallToolResult
impl Unpin for CallToolResult
impl UnwindSafe for CallToolResult
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)