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
sourceimpl<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
sourceimpl<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>
sourceimpl<Transport, Item, SinkItem, Codec> Sink<SinkItem> for Framed<Transport, Item, SinkItem, Codec> where
Transport: Sink<Bytes>,
Codec: Serializer<SinkItem>,
Codec::Error: Into<Transport::Error>,
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>,
sourcefn 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>>
Attempts to prepare the Sink
to receive a value. Read more
sourcefn start_send(self: Pin<&mut Self>, item: SinkItem) -> Result<(), Self::Error>
fn start_send(self: Pin<&mut Self>, item: SinkItem) -> Result<(), Self::Error>
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
sourceimpl<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>,
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>,
impl<'pin, Transport, Item, SinkItem, Codec> Unpin for Framed<Transport, Item, SinkItem, Codec> where
__Framed<'pin, Transport, Item, SinkItem, Codec>: Unpin,
Auto Trait Implementations
impl<Transport, Item, SinkItem, Codec> RefUnwindSafe for Framed<Transport, Item, SinkItem, Codec> where
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,
impl<Transport, Item, SinkItem, Codec> Sync for Framed<Transport, Item, SinkItem, Codec> where
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,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more