pub trait Network {
type Addr: Ord;
// Required methods
fn net_start(&mut self) -> Result<(), NetworkError>;
fn net_stop(&mut self) -> Result<(), NetworkError>;
fn net_local_addr(&self) -> Self::Addr;
fn net_advertise(&mut self) -> Result<(), NetworkError>;
fn net_recv(
&mut self,
) -> Result<Option<(Self::Addr, Box<[u8]>)>, NetworkError>;
fn net_send(
&mut self,
addr: Self::Addr,
data: &[u8],
) -> Result<(), NetworkError>;
fn net_send_status(
&mut self,
addr: Self::Addr,
) -> Result<SendStatus, NetworkError>;
}Required Associated Types§
Required Methods§
Sourcefn net_start(&mut self) -> Result<(), NetworkError>
fn net_start(&mut self) -> Result<(), NetworkError>
Start accepting incoming network connections from other peers.
Sourcefn net_stop(&mut self) -> Result<(), NetworkError>
fn net_stop(&mut self) -> Result<(), NetworkError>
Stop accepting incoming network connections from other peers.
Sourcefn net_local_addr(&self) -> Self::Addr
fn net_local_addr(&self) -> Self::Addr
Network address of the current device as visible to the other peers.
Used to sort all the peers, including the local one, in the same order on all devices.
Sourcefn net_advertise(&mut self) -> Result<(), NetworkError>
fn net_advertise(&mut self) -> Result<(), NetworkError>
Broadcast device presence to all other devices nearby.
Sourcefn net_recv(&mut self) -> Result<Option<(Self::Addr, Box<[u8]>)>, NetworkError>
fn net_recv(&mut self) -> Result<Option<(Self::Addr, Box<[u8]>)>, NetworkError>
Get a pending message, if any. Non-blocking.
Sourcefn net_send(
&mut self,
addr: Self::Addr,
data: &[u8],
) -> Result<(), NetworkError>
fn net_send( &mut self, addr: Self::Addr, data: &[u8], ) -> Result<(), NetworkError>
Send a raw message to the given device. Non-blocking.
Sourcefn net_send_status(
&mut self,
addr: Self::Addr,
) -> Result<SendStatus, NetworkError>
fn net_send_status( &mut self, addr: Self::Addr, ) -> Result<SendStatus, NetworkError>
Send a raw message to the given device. Non-blocking.