Struct UdpPacketSocket
pub struct UdpPacketSocket { /* private fields */ }Available on crate features
std and udp only.Expand description
Packet-oriented Tokio UDP socket with portable ancillary metadata.
Implementations§
§impl UdpPacketSocket
impl UdpPacketSocket
pub async fn bind(
address: impl TryInto>,
) -> Result<UdpPacketSocket, DatagramError>where
<impl TryInto<SocketAddress> as TryInto<SocketAddress>>::Error: Into<Box<dyn Error + Send + Sync>>,
pub async fn bind(
address: impl TryInto>,
) -> Result<UdpPacketSocket, DatagramError>where
<impl TryInto<SocketAddress> as TryInto<SocketAddress>>::Error: Into<Box<dyn Error + Send + Sync>>,
where
<impl TryInto<SocketAddress> as TryInto<SocketAddress>>::Error: Into<Box<dyn Error + Send + Sync>>,
Bind a packet-oriented socket using default socket options.
pub fn from_socket(socket: UdpSocket) -> Result<UdpPacketSocket, DatagramError>
pub fn from_socket(socket: UdpSocket) -> Result<UdpPacketSocket, DatagramError>
Wrap an existing Tokio UDP socket and enable best-effort packet metadata.
Trait Implementations§
§impl DatagramSocket for UdpPacketSocket
impl DatagramSocket for UdpPacketSocket
§type Sender = UdpPacketSender
type Sender = UdpPacketSender
Independently wakeable send handle created by this socket.
§fn create_sender(&self) -> <UdpPacketSocket as DatagramSocket>::Sender
fn create_sender(&self) -> <UdpPacketSocket as DatagramSocket>::Sender
Create a send handle with independent readiness registration. Read more
§fn poll_recv(
&mut self,
cx: &mut Context<'_>,
buffers: &mut [IoSliceMut<'_>],
metadata: &mut [DatagramMetadata],
) -> Poll<Result<usize, DatagramError>>
fn poll_recv( &mut self, cx: &mut Context<'_>, buffers: &mut [IoSliceMut<'_>], metadata: &mut [DatagramMetadata], ) -> Poll<Result<usize, DatagramError>>
Receive one or more datagrams, or register for readiness. Read more
§fn capabilities(&self) -> DatagramCapabilities
fn capabilities(&self) -> DatagramCapabilities
Current runtime-detected capabilities.
§impl Debug for UdpPacketSocket
impl Debug for UdpPacketSocket
§impl Socket for UdpPacketSocket
impl Socket for UdpPacketSocket
§fn local_addr(&self) -> Result<SocketAddress, Error>
fn local_addr(&self) -> Result<SocketAddress, Error>
Try to get the local address of the socket.
§fn peer_addr(&self) -> Result<SocketAddress, Error>
fn peer_addr(&self) -> Result<SocketAddress, Error>
Try to get the remote address of the socket.
Auto Trait Implementations§
impl Freeze for UdpPacketSocket
impl RefUnwindSafe for UdpPacketSocket
impl Send for UdpPacketSocket
impl Sync for UdpPacketSocket
impl Unpin for UdpPacketSocket
impl UnsafeUnpin for UdpPacketSocket
impl UnwindSafe for UdpPacketSocket
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> DatagramSocketExt for Twhere
T: DatagramSocket + ?Sized,
impl<T> DatagramSocketExt for Twhere
T: DatagramSocket + ?Sized,
§fn recv<'a>(
&'a mut self,
buffer: &'a mut [u8],
) -> impl Future<Output = Result<DatagramMetadata, DatagramError>> + Send + 'awhere
Self: Sized,
fn recv<'a>(
&'a mut self,
buffer: &'a mut [u8],
) -> impl Future<Output = Result<DatagramMetadata, DatagramError>> + Send + 'awhere
Self: Sized,
Receive one datagram into
buffer.§fn recv_batch<'a, 'buffer>(
&'a mut self,
buffers: &'a mut [IoSliceMut<'buffer>],
metadata: &'a mut [DatagramMetadata],
) -> impl Future<Output = Result<usize, DatagramError>> + Send + 'awhere
'buffer: 'a,
Self: Sized,
fn recv_batch<'a, 'buffer>(
&'a mut self,
buffers: &'a mut [IoSliceMut<'buffer>],
metadata: &'a mut [DatagramMetadata],
) -> impl Future<Output = Result<usize, DatagramError>> + Send + 'awhere
'buffer: 'a,
Self: Sized,
Receive one or more datagrams into parallel buffer and metadata slices.
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more