[−][src]Struct tokio_serde::Framed
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: Debug, Item: Debug, SinkItem: Debug, Codec: Debug> Debug 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>,
type Error = Transport::Error
The type of value produced by the sink when an error occurs.
pub 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>>
pub fn start_send(
self: Pin<&mut Self>,
item: SinkItem
) -> Result<(), Self::Error>
[src]
self: Pin<&mut Self>,
item: SinkItem
) -> Result<(), Self::Error>
pub 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>>
pub 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>>
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>,
type Item = Result<Item, Transport::Error>
Values yielded by the stream.
pub fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
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,
Auto Trait Implementations
impl<Transport, Item, SinkItem, Codec> RefUnwindSafe for Framed<Transport, Item, SinkItem, Codec> where
Codec: RefUnwindSafe,
Item: RefUnwindSafe,
SinkItem: RefUnwindSafe,
Transport: RefUnwindSafe,
[src]
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,
[src]
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,
[src]
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,
[src]
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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized,
[src]
S: Stream<Item = Result<T, E>> + ?Sized,