pub struct MemoryTransport { /* private fields */ }Expand description
In-memory transport using channels for message passing.
This transport enables direct communication between a client and server without any network or I/O overhead. Messages are passed through bounded MPSC channels.
§Thread Safety
The transport is Send and can be passed to other threads, but it is
not Sync. Each endpoint (client/server) should be used from a single
thread at a time.
§Cancellation
Recv operations poll the channel with a timeout, checking for cancellation between polls. This ensures proper integration with asupersync’s cancellation mechanism.
Implementations§
Source§impl MemoryTransport
impl MemoryTransport
Sourcepub fn with_poll_interval(self, interval: Duration) -> MemoryTransport
pub fn with_poll_interval(self, interval: Duration) -> MemoryTransport
Sets the poll interval for cancellation checks during recv.
Lower values provide faster cancellation response but use more CPU. Default is 50ms.
Trait Implementations§
Source§impl Debug for MemoryTransport
impl Debug for MemoryTransport
Source§impl Transport for MemoryTransport
impl Transport for MemoryTransport
Source§fn send(
&mut self,
cx: &Cx,
message: &JsonRpcMessage,
) -> Result<(), TransportError>
fn send( &mut self, cx: &Cx, message: &JsonRpcMessage, ) -> Result<(), TransportError>
Send a JSON-RPC message through this transport. Read more
Source§fn recv(&mut self, cx: &Cx) -> Result<JsonRpcMessage, TransportError>
fn recv(&mut self, cx: &Cx) -> Result<JsonRpcMessage, TransportError>
Receive the next JSON-RPC message from this transport. Read more
Source§fn send_request(
&mut self,
cx: &Cx,
request: &JsonRpcRequest,
) -> Result<(), TransportError>
fn send_request( &mut self, cx: &Cx, request: &JsonRpcRequest, ) -> Result<(), TransportError>
Send a request through this transport. Read more
Source§fn send_response(
&mut self,
cx: &Cx,
response: &JsonRpcResponse,
) -> Result<(), TransportError>
fn send_response( &mut self, cx: &Cx, response: &JsonRpcResponse, ) -> Result<(), TransportError>
Send a response through this transport. Read more
Auto Trait Implementations§
impl Freeze for MemoryTransport
impl RefUnwindSafe for MemoryTransport
impl Send for MemoryTransport
impl !Sync for MemoryTransport
impl Unpin for MemoryTransport
impl UnwindSafe for MemoryTransport
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: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).