Skip to main content

Transport

Trait Transport 

Source
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§

Source

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.

Source

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".

Implementations on Foreign Types§

Source§

impl<T: Transport + ?Sized> Transport for Arc<T>

Source§

fn send( &self, destination: &str, payload: &[u8], ) -> Result<Vec<u8>, TransportError>

Source§

fn connect( &self, destination: &str, ) -> Result<Box<dyn Connection>, TransportError>

Implementors§