#[non_exhaustive]pub struct InputRequiredResult {
pub result_type: ResultType,
pub input_requests: Option<BTreeMap<String, InputRequest>>,
pub request_state: Option<String>,
pub meta: Option<MetaObject>,
}mcp and tools only.Expand description
A result indicating that additional input is needed before the request can be completed.
At least one of input_requests or
request_state MUST be present.
Servers MAY send this in response to tools/call, prompts/get, or
resources/read. Servers MUST NOT send this for any other request.
§Examples
use rmcp::model::InputRequiredResult;
let result = InputRequiredResult::from_request_state("opaque-server-state");
assert!(result.input_requests.is_none());
assert_eq!(result.request_state.as_deref(), Some("opaque-server-state"));Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.result_type: ResultTypeAlways "input_required" for this result type.
input_requests: Option<BTreeMap<String, InputRequest>>Server-initiated requests that the client must fulfill before retrying.
request_state: Option<String>Opaque request state to be echoed back by the client on retry. Clients MUST NOT inspect, parse, modify, or make any assumptions about the contents.
meta: Option<MetaObject>Optional protocol-level metadata.
Implementations§
Source§impl InputRequiredResult
impl InputRequiredResult
Sourcepub fn new(
input_requests: Option<BTreeMap<String, InputRequest>>,
request_state: Option<String>,
) -> InputRequiredResult
pub fn new( input_requests: Option<BTreeMap<String, InputRequest>>, request_state: Option<String>, ) -> InputRequiredResult
Creates a new InputRequiredResult with both input requests and request state.
Sourcepub fn from_input_requests(
input_requests: BTreeMap<String, InputRequest>,
) -> InputRequiredResult
pub fn from_input_requests( input_requests: BTreeMap<String, InputRequest>, ) -> InputRequiredResult
Creates from input requests only.
Sourcepub fn from_request_state(
request_state: impl Into<String>,
) -> InputRequiredResult
pub fn from_request_state( request_state: impl Into<String>, ) -> InputRequiredResult
Creates from request state only (e.g. for load shedding).
Sourcepub fn with_meta(self, meta: MetaObject) -> InputRequiredResult
pub fn with_meta(self, meta: MetaObject) -> InputRequiredResult
Sets optional metadata.
Trait Implementations§
Source§impl Clone for InputRequiredResult
impl Clone for InputRequiredResult
Source§fn clone(&self) -> InputRequiredResult
fn clone(&self) -> InputRequiredResult
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InputRequiredResult
impl Debug for InputRequiredResult
Source§impl<'de> Deserialize<'de> for InputRequiredResult
Custom deserializer that requires resultType: "input_required" to prevent
greedy matching in the untagged ServerResult enum (which would otherwise
swallow empty objects or unknown shapes).
impl<'de> Deserialize<'de> for InputRequiredResult
Custom deserializer that requires resultType: "input_required" to prevent
greedy matching in the untagged ServerResult enum (which would otherwise
swallow empty objects or unknown shapes).
Source§fn deserialize<D>(
deserializer: D,
) -> Result<InputRequiredResult, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<InputRequiredResult, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl From<InputRequiredResult> for CallToolResponse
impl From<InputRequiredResult> for CallToolResponse
Source§fn from(result: InputRequiredResult) -> CallToolResponse
fn from(result: InputRequiredResult) -> CallToolResponse
Source§impl From<InputRequiredResult> for GetPromptResponse
impl From<InputRequiredResult> for GetPromptResponse
Source§fn from(result: InputRequiredResult) -> GetPromptResponse
fn from(result: InputRequiredResult) -> GetPromptResponse
Source§impl From<InputRequiredResult> for ReadResourceResponse
impl From<InputRequiredResult> for ReadResourceResponse
Source§fn from(result: InputRequiredResult) -> ReadResourceResponse
fn from(result: InputRequiredResult) -> ReadResourceResponse
Source§impl From<InputRequiredResult> for ServerResult
impl From<InputRequiredResult> for ServerResult
Source§fn from(value: InputRequiredResult) -> ServerResult
fn from(value: InputRequiredResult) -> ServerResult
Source§impl IntoCallToolResult for InputRequiredResult
impl IntoCallToolResult for InputRequiredResult
fn into_call_tool_result(self) -> Result<CallToolResponse, ErrorData>
Source§impl IntoGetPromptResult for InputRequiredResult
impl IntoGetPromptResult for InputRequiredResult
fn into_get_prompt_result(self) -> Result<GetPromptResponse, ErrorData>
Source§impl JsonSchema for InputRequiredResult
impl JsonSchema for InputRequiredResult
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Serialize for InputRequiredResult
impl Serialize for InputRequiredResult
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl !RefUnwindSafe for InputRequiredResult
impl !UnwindSafe for InputRequiredResult
impl Freeze for InputRequiredResult
impl Send for InputRequiredResult
impl Sync for InputRequiredResult
impl Unpin for InputRequiredResult
impl UnsafeUnpin for InputRequiredResult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeSend for Twhere
T: Send,
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.