#[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>,
}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> 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 more