Trait fibers_transport::Transport [−][src]
pub trait Transport { type PeerAddr: PeerAddr; type SendItem; type RecvItem; fn start_send(
&mut self,
peer: Self::PeerAddr,
item: Self::SendItem
) -> Result<()>; fn poll_send(&mut self) -> PollSend; fn poll_recv(&mut self) -> PollRecv<(Self::PeerAddr, Self::RecvItem)>; }
This trait allows for sending and receiving items between peers.
Associated Types
Required Methods
fn start_send(
&mut self,
peer: Self::PeerAddr,
item: Self::SendItem
) -> Result<()>
&mut self,
peer: Self::PeerAddr,
item: Self::SendItem
) -> Result<()>
Starts sending the given item to the destination peer.
fn poll_send(&mut self) -> PollSend
Polls the transmission of the all outstanding items in the transporter have been completed.
If it has been completed, this will return Ok(Async::Ready(()))
.
fn poll_recv(&mut self) -> PollRecv<(Self::PeerAddr, Self::RecvItem)>
Polls reception of an item from a peer.
If the transporter has terminated, this will return Ok(Async::Ready(None))
.
Implementors
impl<T: Transport, P: PeerAddr> Transport for FixedPeerTransporter<T, P> type PeerAddr = P; type SendItem = T::SendItem; type RecvItem = T::RecvItem;
impl<T: Transport> Transport for RcTransporter<T> type PeerAddr = T::PeerAddr; type SendItem = T::SendItem; type RecvItem = T::RecvItem;
impl<E: Encode, D: Decode> Transport for TcpTransporter<E, D> type PeerAddr = (); type SendItem = E::Item; type RecvItem = D::Item;
impl<E: Encode, D: Decode> Transport for UdpTransporter<E, D> type PeerAddr = SocketAddr; type SendItem = E::Item; type RecvItem = D::Item;