Trait quinn::AsyncUdpSocket

source ·
pub trait AsyncUdpSocket: Send + Debug + 'static {
    // Required methods
    fn poll_send(
        &self,
        state: &UdpState,
        cx: &mut Context<'_>,
        transmits: &[Transmit]
    ) -> Poll<Result<usize, Error>>;
    fn poll_recv(
        &self,
        cx: &mut Context<'_>,
        bufs: &mut [IoSliceMut<'_>],
        meta: &mut [RecvMeta]
    ) -> Poll<Result<usize>>;
    fn local_addr(&self) -> Result<SocketAddr>;

    // Provided method
    fn may_fragment(&self) -> bool { ... }
}
Expand description

Abstract implementation of a UDP socket for runtime independence

Required Methods§

source

fn poll_send( &self, state: &UdpState, cx: &mut Context<'_>, transmits: &[Transmit] ) -> Poll<Result<usize, Error>>

Send UDP datagrams from transmits, or register to be woken if sending may succeed in the future

source

fn poll_recv( &self, cx: &mut Context<'_>, bufs: &mut [IoSliceMut<'_>], meta: &mut [RecvMeta] ) -> Poll<Result<usize>>

Receive UDP datagrams, or register to be woken if receiving may succeed in the future

source

fn local_addr(&self) -> Result<SocketAddr>

Look up the local IP address and port used by this socket

Provided Methods§

source

fn may_fragment(&self) -> bool

Whether datagrams might get fragmented into multiple parts

Sockets should prevent this for best performance. See e.g. the IPV6_DONTFRAG socket option.

Implementors§