#[non_exhaustive]pub struct IncomingRequest {
pub message: JsonRpcMessage,
pub client_pubkey: String,
pub event_id: String,
pub is_encrypted: bool,
pub event: Option<Event>,
}Expand description
An incoming MCP request with metadata for routing the response.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.message: JsonRpcMessageThe parsed MCP message.
client_pubkey: StringThe client’s public key (hex).
event_id: StringThe Nostr event ID (for response correlation).
is_encrypted: boolWhether the original message was encrypted.
event: Option<Event>The inbound (client-signed) Nostr event, if this request carried one.
Some for real client requests: the inner, signature-verified gift-wrap
event for encrypted requests, the outer event for plaintext, or the
carrying frame event for CEP-22 oversized reassembly. None only for
requests the transport synthesizes itself (announcement /
initialization drives), which carry no real Nostr event. Handlers reach
it via InboundEvent in request
extensions; see that type’s docs.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for IncomingRequest
impl RefUnwindSafe for IncomingRequest
impl Send for IncomingRequest
impl Sync for IncomingRequest
impl Unpin for IncomingRequest
impl UnsafeUnpin for IncomingRequest
impl UnwindSafe for IncomingRequest
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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