pub enum ClientMessages {
Single(ClientMessage),
Batch(Vec<ClientMessage>),
}Variants§
Single(ClientMessage)
Batch(Vec<ClientMessage>)
Implementations§
Trait Implementations§
Source§impl Clone for ClientMessages
impl Clone for ClientMessages
Source§fn clone(&self) -> ClientMessages
fn clone(&self) -> ClientMessages
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClientMessages
impl Debug for ClientMessages
Source§impl<'de> Deserialize<'de> for ClientMessages
impl<'de> Deserialize<'de> for ClientMessages
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ClientMessages, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ClientMessages, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for ClientMessages
impl Display for ClientMessages
Source§impl From<ClientMessage> for ClientMessages
impl From<ClientMessage> for ClientMessages
Source§fn from(value: ClientMessage) -> ClientMessages
fn from(value: ClientMessage) -> ClientMessages
Source§impl From<Vec<ClientMessage>> for ClientMessages
impl From<Vec<ClientMessage>> for ClientMessages
Source§fn from(value: Vec<ClientMessage>) -> ClientMessages
fn from(value: Vec<ClientMessage>) -> ClientMessages
Source§impl McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage> for MessageDispatcher<ClientMessage>
impl McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage> for MessageDispatcher<ClientMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
messages: ServerMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
messages: ServerMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
Sends a message from the server to the client and awaits a response if applicable.
Serializes the ServerMessages to JSON, writes it to the transport, and waits for a
ClientMessages response if the message is a request. Notifications and responses return
Ok(None).
§Arguments
messages- The client message to send, coulld be a single message or batch.
§Returns
A TransportResult containing Some(ClientMessages) for requests with a response,
or None for notifications/responses, or an error if the operation fails.
§Errors
Returns a TransportError if serialization, writing, or timeout occurs.
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
Writes a string payload to the underlying asynchronous writable stream, appending a newline character and flushing the stream afterward.
fn send<'life0, 'async_trait>(
&'life0 self,
message: ServerMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ServerMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ClientMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
Source§impl McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage> for SseTransport<ClientMessage>
impl McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage> for SseTransport<ClientMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ServerMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ServerMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
S and optionally includes a request_id.
The request_id is used when sending a message in response to an MCP request.
It should match the request_id of the original request.fn send<'life0, 'async_trait>(
&'life0 self,
message: ServerMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ServerMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ClientMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
Source§impl McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage> for StdioTransport<ClientMessage>
impl McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage> for StdioTransport<ClientMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ServerMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ClientMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ServerMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ClientMessage>: 'async_trait,
S and optionally includes a request_id.
The request_id is used when sending a message in response to an MCP request.
It should match the request_id of the original request.fn send<'life0, 'async_trait>(
&'life0 self,
message: ServerMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ClientMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ServerMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ClientMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ClientMessage>: 'async_trait,
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
StdioTransport<ClientMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
StdioTransport<ClientMessage>: 'async_trait,
Source§impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for ClientSseTransport<ServerMessage>
impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for ClientSseTransport<ServerMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientSseTransport<ServerMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientSseTransport<ServerMessage>: 'async_trait,
S and optionally includes a request_id.
The request_id is used when sending a message in response to an MCP request.
It should match the request_id of the original request.fn send<'life0, 'async_trait>(
&'life0 self,
message: ClientMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientSseTransport<ServerMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ClientMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ServerMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientSseTransport<ServerMessage>: 'async_trait,
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ClientSseTransport<ServerMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ClientSseTransport<ServerMessage>: 'async_trait,
Source§impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for ClientStreamableTransport<ServerMessage>
impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for ClientStreamableTransport<ServerMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientStreamableTransport<ServerMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientStreamableTransport<ServerMessage>: 'async_trait,
S and optionally includes a request_id.
The request_id is used when sending a message in response to an MCP request.
It should match the request_id of the original request.fn send<'life0, 'async_trait>(
&'life0 self,
message: ClientMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientStreamableTransport<ServerMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ClientMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ServerMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
ClientStreamableTransport<ServerMessage>: 'async_trait,
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ClientStreamableTransport<ServerMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ClientStreamableTransport<ServerMessage>: 'async_trait,
Source§impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for MessageDispatcher<ServerMessage>
impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for MessageDispatcher<ServerMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
messages: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
messages: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
Sends a message from the client to the server and awaits a response if applicable.
Serializes the ClientMessages to JSON, writes it to the transport, and waits for a
ServerMessages response if the message is a request. Notifications and responses return
Ok(None).
§Arguments
messages- The client message to send, coulld be a single message or batch.
§Returns
A TransportResult containing Some(ServerMessages) for requests with a response,
or None for notifications/responses, or an error if the operation fails.
§Errors
Returns a TransportError if serialization, writing, or timeout occurs.
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
_skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
_skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
Writes a string payload to the underlying asynchronous writable stream, appending a newline character and flushing the stream afterward.
fn send<'life0, 'async_trait>(
&'life0 self,
message: ClientMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ClientMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ServerMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
Source§impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for StdioTransport<ServerMessage>
impl McpDispatch<ServerMessages, ClientMessages, ServerMessage, ClientMessage> for StdioTransport<ServerMessage>
Source§fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ServerMessage>: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
message: ClientMessages,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ServerMessage>: 'async_trait,
S and optionally includes a request_id.
The request_id is used when sending a message in response to an MCP request.
It should match the request_id of the original request.fn send<'life0, 'async_trait>(
&'life0 self,
message: ClientMessage,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ServerMessage>: 'async_trait,
fn send_batch<'life0, 'async_trait>(
&'life0 self,
message: Vec<ClientMessage>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ServerMessage>>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
StdioTransport<ServerMessage>: 'async_trait,
Source§fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
StdioTransport<ServerMessage>: 'async_trait,
fn write_str<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
skip_store: bool,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
StdioTransport<ServerMessage>: 'async_trait,
Source§impl Serialize for ClientMessages
impl Serialize for ClientMessages
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,
Source§impl Transport<ClientMessages, MessageFromServer, ClientMessage, ServerMessages, ServerMessage> for SseTransport<ClientMessage>
impl Transport<ClientMessages, MessageFromServer, ClientMessage, ServerMessages, ServerMessage> for SseTransport<ClientMessage>
Source§fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ReceiverStream<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage>,
SseTransport<ClientMessage>: 'async_trait,
fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ReceiverStream<ClientMessages>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: McpDispatch<ClientMessages, ServerMessages, ClientMessage, ServerMessage>,
SseTransport<ClientMessage>: 'async_trait,
Starts the transport, initializing streams and message dispatcher
Sets up the MCP stream and dispatcher using the provided duplex streams.
§Returns
TransportResult<(Pin<Box<dyn Stream<Item = R> + Send>>, MessageDispatcher<R>, IoStream)>- The message stream, dispatcher, and error stream
§Errors
- Returns
TransportErrorif streams are already taken or not initialized
Source§fn is_shut_down<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn is_shut_down<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
Checks if the transport has been shut down
§Returns
bool- True if the transport is shut down, false otherwise
Source§fn shut_down<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn shut_down<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
Shuts down the transport, terminating tasks and signaling closure
Cancels any running tasks and clears the cancellation source.
§Returns
TransportResult<()>- Ok if shutdown is successful, Err if cancellation fails
fn message_sender( &self, ) -> Arc<RwLock<Option<MessageDispatcher<ClientMessage>>>>
fn error_stream(&self) -> &RwLock<Option<IoStream>>
fn consume_string_payload<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn keep_alive<'life0, 'async_trait>(
&'life0 self,
interval: Duration,
disconnect_tx: Sender<()>,
) -> Pin<Box<dyn Future<Output = Result<JoinHandle<()>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn pending_request_tx<'life0, 'life1, 'async_trait>(
&'life0 self,
request_id: &'life1 RequestId,
) -> Pin<Box<dyn Future<Output = Option<Sender<ClientMessage>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SseTransport<ClientMessage>: 'async_trait,
fn session_id<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<String>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
impl TransportDispatcher<ClientMessages, MessageFromServer, ClientMessage, ServerMessages, ServerMessage> for SseTransport<ClientMessage>
impl TransportDispatcher<ClientMessages, MessageFromServer, ClientMessage, ServerMessages, ServerMessage> for StdioTransport<ClientMessage>
impl TransportDispatcher<ServerMessages, MessageFromClient, ServerMessage, ClientMessages, ClientMessage> for ClientSseTransport<ServerMessage>
impl TransportDispatcher<ServerMessages, MessageFromClient, ServerMessage, ClientMessages, ClientMessage> for ClientStreamableTransport<ServerMessage>
impl TransportDispatcher<ServerMessages, MessageFromClient, ServerMessage, ClientMessages, ClientMessage> for StdioTransport<ServerMessage>
Auto Trait Implementations§
impl Freeze for ClientMessages
impl RefUnwindSafe for ClientMessages
impl Send for ClientMessages
impl Sync for ClientMessages
impl Unpin for ClientMessages
impl UnsafeUnpin for ClientMessages
impl UnwindSafe for ClientMessages
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.