[−][src]Struct tokio_util::udp::UdpFramed
feature="udp"
and feature="codec"
only.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.
Methods
impl<C> UdpFramed<C>
[src]
pub fn new(socket: UdpSocket, codec: C) -> UdpFramed<C>
[src]
feature="udp"
and feature="codec"
only.Create a new UdpFramed
backed by the given socket and codec.
See struct level documentation for more details.
pub fn get_ref(&self) -> &UdpSocket
[src]
feature="udp"
and feature="codec"
only.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 UdpSocket
[src]
feature="udp"
and feature="codec"
only.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 into_inner(self) -> UdpSocket
[src]
feature="udp"
and feature="codec"
only.Consumes the Framed
, returning its underlying I/O stream.
Trait Implementations
impl<C: Debug> Debug for UdpFramed<C>
[src]
impl<C: Decoder + Unpin> Stream for UdpFramed<C>
[src]
type Item = Result<(C::Item, SocketAddr), C::Error>
Values yielded by the stream.
fn poll_next(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Option<Self::Item>>
[src]
fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<C: Encoder + Unpin> Sink<(<C as Encoder>::Item, SocketAddr)> for UdpFramed<C>
[src]
type Error = C::Error
The type of value produced by the sink when an error occurs.
fn poll_ready(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
fn start_send(
self: Pin<&mut Self>,
item: (C::Item, SocketAddr)
) -> Result<(), Self::Error>
[src]
self: Pin<&mut Self>,
item: (C::Item, SocketAddr)
) -> Result<(), Self::Error>
fn poll_flush(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
fn poll_close(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
Auto Trait Implementations
impl<C> Send for UdpFramed<C> where
C: Send,
C: Send,
impl<C> Sync for UdpFramed<C> where
C: Sync,
C: Sync,
impl<C> Unpin for UdpFramed<C> where
C: Unpin,
C: Unpin,
impl<C> !UnwindSafe for UdpFramed<C>
impl<C> !RefUnwindSafe for UdpFramed<C>
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized,
[src]
S: Stream<Item = Result<T, E>> + ?Sized,