Struct tokio_serde::Framed
source · pub struct Framed<Transport, Item, SinkItem, Codec> { /* private fields */ }
Expand description
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§
source§impl<Transport, Item, SinkItem, Codec> Framed<Transport, Item, SinkItem, Codec>
impl<Transport, Item, SinkItem, Codec> Framed<Transport, Item, SinkItem, Codec>
sourcepub fn new(inner: Transport, codec: Codec) -> Self
pub fn new(inner: Transport, codec: Codec) -> Self
Creates a new Framed
with the given transport and codec.
sourcepub fn get_ref(&self) -> &Transport
pub fn get_ref(&self) -> &Transport
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.
sourcepub fn get_mut(&mut self) -> &mut Transport
pub fn get_mut(&mut self) -> &mut Transport
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.
sourcepub fn into_inner(self) -> Transport
pub fn into_inner(self) -> Transport
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§
source§impl<Transport: Debug, Item: Debug, SinkItem: Debug, Codec: Debug> Debug for Framed<Transport, Item, SinkItem, Codec>
impl<Transport: Debug, Item: Debug, SinkItem: Debug, Codec: Debug> Debug for Framed<Transport, Item, SinkItem, Codec>
source§impl<Transport, Item, SinkItem, Codec> Sink<SinkItem> for Framed<Transport, Item, SinkItem, Codec>
impl<Transport, Item, SinkItem, Codec> Sink<SinkItem> for Framed<Transport, Item, SinkItem, Codec>
§type Error = <Transport as Sink<Bytes>>::Error
type Error = <Transport as Sink<Bytes>>::Error
source§fn poll_ready(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>
fn poll_ready( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>
Sink
to receive a value. Read moresource§fn start_send(self: Pin<&mut Self>, item: SinkItem) -> Result<(), Self::Error>
fn start_send(self: Pin<&mut Self>, item: SinkItem) -> Result<(), Self::Error>
poll_ready
which returned Poll::Ready(Ok(()))
. Read more