pub trait Transport: Send + Sync {
// Required methods
fn send(
&self,
destination: &str,
payload: &[u8],
) -> Result<Vec<u8>, TransportError>;
fn connect(
&self,
destination: &str,
) -> Result<Box<dyn Connection>, TransportError>;
}Expand description
Core transport abstraction for Shape inter-node communication.
Implementations provide one-shot request/response (send) and
persistent connection (connect) semantics.
Required Methods§
Sourcefn send(
&self,
destination: &str,
payload: &[u8],
) -> Result<Vec<u8>, TransportError>
fn send( &self, destination: &str, payload: &[u8], ) -> Result<Vec<u8>, TransportError>
Send a payload to destination and return the response.
This is a one-shot operation: connect, send, receive, close.
Sourcefn connect(
&self,
destination: &str,
) -> Result<Box<dyn Connection>, TransportError>
fn connect( &self, destination: &str, ) -> Result<Box<dyn Connection>, TransportError>
Establish a persistent connection to destination.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".