Struct tokio_util::udp::UdpFramed [−][src]
#[must_use = "sinks do nothing unless polled"]pub struct UdpFramed<C, T = UdpSocket> { /* fields omitted */ }
net
and codec
and udp
only.Expand description
A unified Stream
and Sink
interface to an underlying UdpSocket
, using
the Encoder
and Decoder
traits to encode and decode frames.
Raw UDP sockets work with datagrams, but higher-level code usually wants to
batch these into meaningful chunks, called “frames”. This method layers
framing on top of this socket by using the Encoder
and Decoder
traits to
handle encoding and decoding of messages frames. Note that the incoming and
outgoing frame types may be distinct.
This function returns a single object that is both Stream
and Sink
;
grouping this into a single object is often useful for layering things which
require both read and write access to the underlying object.
If you want to work more directly with the streams and sink, consider
calling split
on the UdpFramed
returned by this method, which will break
them into separate objects, allowing them to interact more easily.
Implementations
impl<C, T> UdpFramed<C, T> where
T: Borrow<UdpSocket>,
[src]
impl<C, T> UdpFramed<C, T> where
T: Borrow<UdpSocket>,
[src]pub fn new(socket: T, codec: C) -> UdpFramed<C, T>
[src]
pub fn new(socket: T, codec: C) -> UdpFramed<C, T>
[src]Create a new UdpFramed
backed by the given socket and codec.
See struct level documentation for more details.
pub fn get_ref(&self) -> &T
[src]
pub fn get_ref(&self) -> &T
[src]Returns a reference to the underlying I/O stream wrapped by Framed
.
Note
Care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.
pub fn get_mut(&mut self) -> &mut T
[src]
pub fn get_mut(&mut self) -> &mut T
[src]Returns a mutable reference to the underlying I/O stream wrapped by Framed
.
Note
Care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.
pub fn codec(&self) -> &C
[src]
pub fn codec(&self) -> &C
[src]Returns a reference to the underlying codec wrapped by
Framed
.
Note that care should be taken to not tamper with the underlying codec as it may corrupt the stream of frames otherwise being worked with.
pub fn codec_mut(&mut self) -> &mut C
[src]
pub fn codec_mut(&mut self) -> &mut C
[src]Returns a mutable reference to the underlying codec wrapped by
UdpFramed
.
Note that care should be taken to not tamper with the underlying codec as it may corrupt the stream of frames otherwise being worked with.
pub fn read_buffer(&self) -> &BytesMut
[src]
pub fn read_buffer(&self) -> &BytesMut
[src]Returns a reference to the read buffer.
pub fn read_buffer_mut(&mut self) -> &mut BytesMut
[src]
pub fn read_buffer_mut(&mut self) -> &mut BytesMut
[src]Returns a mutable reference to the read buffer.
pub fn into_inner(self) -> T
[src]
pub fn into_inner(self) -> T
[src]Consumes the Framed
, returning its underlying I/O stream.
Trait Implementations
impl<I, C, T> Sink<(I, SocketAddr)> for UdpFramed<C, T> where
T: Borrow<UdpSocket>,
C: Encoder<I>,
[src]
impl<I, C, T> Sink<(I, SocketAddr)> for UdpFramed<C, T> where
T: Borrow<UdpSocket>,
C: Encoder<I>,
[src]fn poll_ready(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>
[src]
fn poll_ready(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>
[src]Attempts to prepare the Sink
to receive a value. Read more
fn start_send(
self: Pin<&mut Self>,
item: (I, SocketAddr)
) -> Result<(), Self::Error>
[src]
fn start_send(
self: Pin<&mut Self>,
item: (I, SocketAddr)
) -> Result<(), Self::Error>
[src]Begin the process of sending a value to the sink.
Each call to this function must be preceded by a successful call to
poll_ready
which returned Poll::Ready(Ok(()))
. Read more
impl<C, T> Stream for UdpFramed<C, T> where
T: Borrow<UdpSocket>,
C: Decoder,
[src]
impl<C, T> Stream for UdpFramed<C, T> where
T: Borrow<UdpSocket>,
C: Decoder,
[src]impl<C, T> Unpin for UdpFramed<C, T>
[src]
Auto Trait Implementations
impl<C, T> RefUnwindSafe for UdpFramed<C, T> where
C: RefUnwindSafe,
T: RefUnwindSafe,
C: RefUnwindSafe,
T: RefUnwindSafe,
impl<C, T> Send for UdpFramed<C, T> where
C: Send,
T: Send,
C: Send,
T: Send,
impl<C, T> Sync for UdpFramed<C, T> where
C: Sync,
T: Sync,
C: Sync,
T: Sync,
impl<C, T> UnwindSafe for UdpFramed<C, T> where
C: UnwindSafe,
T: UnwindSafe,
C: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more