@@ -85,20 +85,29 @@ impl<T: IntoContents> IntoCallToolResult for T {
8585 }
8686}
8787
88- impl < T : IntoContents , E : IntoContents > IntoCallToolResult for Result < T , E > {
88+ impl IntoCallToolResult for CallToolResult {
8989 fn into_call_tool_result ( self ) -> Result < CallToolResult , crate :: ErrorData > {
90- match self {
91- Ok ( value) => Ok ( CallToolResult :: success ( value. into_contents ( ) ) ) ,
92- Err ( error) => Ok ( CallToolResult :: error ( error. into_contents ( ) ) ) ,
93- }
90+ Ok ( self )
91+ }
92+ }
93+
94+ impl IntoCallToolResult for crate :: ErrorData {
95+ fn into_call_tool_result ( self ) -> Result < CallToolResult , crate :: ErrorData > {
96+ Err ( self )
9497 }
9598}
9699
97- impl < T : IntoCallToolResult > IntoCallToolResult for Result < T , crate :: ErrorData > {
100+ impl < T : IntoCallToolResult , E : IntoCallToolResult > IntoCallToolResult for Result < T , E > {
98101 fn into_call_tool_result ( self ) -> Result < CallToolResult , crate :: ErrorData > {
99102 match self {
100103 Ok ( value) => value. into_call_tool_result ( ) ,
101- Err ( error) => Err ( error) ,
104+ Err ( error) => match error. into_call_tool_result ( ) {
105+ Ok ( mut result) => {
106+ result. is_error = Some ( true ) ;
107+ Ok ( result)
108+ }
109+ Err ( e) => Err ( e) ,
110+ } ,
102111 }
103112 }
104113}
@@ -139,12 +148,6 @@ where
139148 }
140149}
141150
142- impl IntoCallToolResult for Result < CallToolResult , crate :: ErrorData > {
143- fn into_call_tool_result ( self ) -> Result < CallToolResult , crate :: ErrorData > {
144- self
145- }
146- }
147-
148151pub trait CallToolHandler < S , A > {
149152 fn call (
150153 self ,
0 commit comments