pub struct SseTransport { /* private fields */ }
Implementations§
Source§impl SseTransport
Server-Sent Events (SSE) transport implementation
impl SseTransport
Server-Sent Events (SSE) transport implementation
Sourcepub fn new(
read_rx: DuplexStream,
write_tx: DuplexStream,
options: Arc<TransportOptions>,
) -> Result<SseTransport, TransportError>
pub fn new( read_rx: DuplexStream, write_tx: DuplexStream, options: Arc<TransportOptions>, ) -> Result<SseTransport, TransportError>
Creates a new SseTransport instance
Initializes the transport with provided read and write duplex streams and options.
§Arguments
read_rx
- Duplex stream for receiving messageswrite_tx
- Duplex stream for sending messagesoptions
- Shared transport configuration options
§Returns
TransportResult<Self>
- The initialized transport or an error
pub fn message_endpoint(endpoint: &str, session_id: &String) -> String
Trait Implementations§
Source§impl<R, S> Transport<R, S> for SseTransportwhere
R: RpcMessage + Clone + Send + Sync + DeserializeOwned + 'static,
S: McpMessage + Clone + Send + Sync + Serialize + 'static,
impl<R, S> Transport<R, S> for SseTransportwhere
R: RpcMessage + Clone + Send + Sync + DeserializeOwned + 'static,
S: McpMessage + Clone + Send + Sync + Serialize + 'static,
Source§fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(Pin<Box<dyn Stream<Item = R> + Send>>, MessageDispatcher<R>, IoStream), TransportError>> + Send + 'async_trait>>
fn start<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(Pin<Box<dyn Stream<Item = R> + Send>>, MessageDispatcher<R>, IoStream), TransportError>> + Send + '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
TransportError
if 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: '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: '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: '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: '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
Auto Trait Implementations§
impl !Freeze for SseTransport
impl !RefUnwindSafe for SseTransport
impl Send for SseTransport
impl Sync for SseTransport
impl Unpin for SseTransport
impl !UnwindSafe for SseTransport
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