Trait Network

Source
pub trait Network:
    Clone
    + Send
    + Sync
    + 'static {
    type Listener: Listener;

    // Required methods
    fn bind(
        &self,
        socket: SocketAddr,
    ) -> impl Future<Output = Result<Self::Listener, Error>> + Send;
    fn dial(
        &self,
        socket: SocketAddr,
    ) -> impl Future<Output = Result<(SinkOf<Self>, StreamOf<Self>), Error>> + Send;
}
Expand description

Interface that any runtime must implement to create network connections.

Required Associated Types§

Source

type Listener: Listener

The type of Listener that’s returned when binding to a socket. Accepting a connection returns a Sink and Stream which are defined by the Listener and used to send and receive data over the connection.

Required Methods§

Source

fn bind( &self, socket: SocketAddr, ) -> impl Future<Output = Result<Self::Listener, Error>> + Send

Bind to the given socket address.

Source

fn dial( &self, socket: SocketAddr, ) -> impl Future<Output = Result<(SinkOf<Self>, StreamOf<Self>), Error>> + Send

Dial the given socket address.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Network for commonware_runtime::deterministic::Context

Source§

type Listener = <Network<Network<Network>> as Network>::Listener

Source§

impl Network for commonware_runtime::tokio::Context

Source§

type Listener = <Network<Network> as Network>::Listener