Trait Transport
Source pub trait Transport:
AsTransport
+ Send
+ Sync {
// Required methods
fn input_state(&self, port: InputPortID) -> PortResult<PortState>;
fn output_state(&self, port: OutputPortID) -> PortResult<PortState>;
fn open_input(&self) -> PortResult<InputPortID>;
fn open_output(&self) -> PortResult<OutputPortID>;
fn close_input(&self, input: InputPortID) -> PortResult<bool>;
fn close_output(&self, output: OutputPortID) -> PortResult<bool>;
fn connect(
&self,
source: OutputPortID,
target: InputPortID,
) -> PortResult<bool>;
fn send(&self, output: OutputPortID, message: Bytes) -> PortResult<()>;
fn recv(&self, input: InputPortID) -> PortResult<Option<Bytes>>;
fn try_recv(&self, input: InputPortID) -> PortResult<Option<Bytes>>;
// Provided methods
fn state(&self, port: PortID) -> PortResult<PortState> { ... }
fn close(&self, port: PortID) -> PortResult<bool> { ... }
}