[][src]Struct tokio_serde::Framed

pub struct Framed<Transport, Item, SinkItem, Codec> { /* fields omitted */ }

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.

Methods

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<'pin, Transport, Item, SinkItem, Codec> Unpin for Framed<Transport, Item, SinkItem, Codec> where
    __Framed<'pin, Transport, Item, SinkItem, Codec>: Unpin
[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]

type Error = Transport::Error

The type of value produced by the sink when an error occurs.

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]

type Item = Result<Item, Transport::Error>

Values yielded by the stream.

Auto Trait Implementations

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

impl<Transport, Item, SinkItem, Codec> RefUnwindSafe for Framed<Transport, Item, SinkItem, Codec> where
    Codec: RefUnwindSafe,
    Item: RefUnwindSafe,
    SinkItem: RefUnwindSafe,
    Transport: RefUnwindSafe

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = !

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<T> StreamExt for T where
    T: Stream + ?Sized
[src]

impl<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized
[src]