Struct tokio_serde::Framed [−][src]
Adapts a transport to a value sink by serializing the values and to a stream of values by deserializing them.
It is expected that the buffers yielded by the supplied transport be framed. In other words, each yielded buffer must represent exactly one serialized value.
The provided transport will receive buffer values containing the
serialized value. Each buffer contains exactly one value. This sink will be
responsible for writing these buffers to an AsyncWrite
using some sort of
framing strategy.
The specific framing strategy is left up to the implementor. One option would be to use length_delimited provided by tokio-util.
Implementations
impl<Transport, Item, SinkItem, Codec> Framed<Transport, Item, SinkItem, Codec>
[src][−]
pub fn new(inner: Transport, codec: Codec) -> Self
[src][−]
Creates a new Framed
with the given transport and codec.
pub fn get_ref(&self) -> &Transport
[src][−]
Returns a reference to the underlying transport wrapped by Framed
.
Note that care should be taken to not tamper with the underlying transport as it may corrupt the sequence of frames otherwise being worked with.
pub fn get_mut(&mut self) -> &mut Transport
[src][−]
Returns a mutable reference to the underlying transport wrapped by
Framed
.
Note that care should be taken to not tamper with the underlying transport as it may corrupt the sequence of frames otherwise being worked with.
pub fn into_inner(self) -> Transport
[src][−]
Consumes the Framed
, returning its underlying transport.
Note that care should be taken to not tamper with the underlying transport as it may corrupt the sequence of frames otherwise being worked with.
Trait Implementations
impl<Transport, Item, SinkItem, Codec> PinnedDrop for Framed<Transport, Item, SinkItem, Codec>
[src][+]
impl<Transport, Item, SinkItem, Codec> Sink<SinkItem> for Framed<Transport, Item, SinkItem, Codec> where
Transport: Sink<Bytes>,
Codec: Serializer<SinkItem>,
Codec::Error: Into<Transport::Error>,
[src][+]
Transport: Sink<Bytes>,
Codec: Serializer<SinkItem>,
Codec::Error: Into<Transport::Error>,
impl<Transport, Item, SinkItem, Codec> Stream for Framed<Transport, Item, SinkItem, Codec> where
Transport: TryStream<Ok = BytesMut>,
Transport::Error: From<Codec::Error>,
BytesMut: From<Transport::Ok>,
Codec: Deserializer<Item>,
[src][+]
Transport: TryStream<Ok = BytesMut>,
Transport::Error: From<Codec::Error>,
BytesMut: From<Transport::Ok>,
Codec: Deserializer<Item>,
impl<'pin, Transport, Item, SinkItem, Codec> Unpin for Framed<Transport, Item, SinkItem, Codec> where
__Framed<'pin, Transport, Item, SinkItem, Codec>: Unpin,
[src]
__Framed<'pin, Transport, Item, SinkItem, Codec>: Unpin,
impl<Transport, Item, SinkItem, Codec> UnsafeUnpin for Framed<Transport, Item, SinkItem, Codec>
[src]
Auto Trait Implementations
impl<Transport, Item, SinkItem, Codec> RefUnwindSafe for Framed<Transport, Item, SinkItem, Codec> where
Codec: RefUnwindSafe,
Item: RefUnwindSafe,
SinkItem: RefUnwindSafe,
Transport: RefUnwindSafe,
Codec: RefUnwindSafe,
Item: RefUnwindSafe,
SinkItem: RefUnwindSafe,
Transport: RefUnwindSafe,
impl<Transport, Item, SinkItem, Codec> Send for Framed<Transport, Item, SinkItem, Codec> where
Codec: Send,
Item: Send,
SinkItem: Send,
Transport: Send,
Codec: Send,
Item: Send,
SinkItem: Send,
Transport: Send,
impl<Transport, Item, SinkItem, Codec> Sync for Framed<Transport, Item, SinkItem, Codec> where
Codec: Sync,
Item: Sync,
SinkItem: Sync,
Transport: Sync,
Codec: Sync,
Item: Sync,
SinkItem: Sync,
Transport: Sync,
impl<Transport, Item, SinkItem, Codec> UnwindSafe for Framed<Transport, Item, SinkItem, Codec> where
Codec: UnwindSafe,
Item: UnwindSafe,
SinkItem: UnwindSafe,
Transport: UnwindSafe,
Codec: UnwindSafe,
Item: UnwindSafe,
SinkItem: UnwindSafe,
Transport: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T, Item> SinkExt<Item> for T where
T: Sink<Item> + ?Sized,
[src][+]
T: Sink<Item> + ?Sized,
impl<T> StreamExt for T where
T: Stream + ?Sized,
[src][+]
T: Stream + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized,
[src][+]
S: Stream<Item = Result<T, E>> + ?Sized,
impl<S> TryStreamExt for S where
S: TryStream + ?Sized,
[src][+]
S: TryStream + ?Sized,