Struct futures_codec::FramedRead[][src]

pub struct FramedRead<T, D> { /* fields omitted */ }

A Stream of messages decoded from an AsyncRead.

Example

use futures_codec::{BytesCodec, FramedRead};
use futures::TryStreamExt;
use bytes::{Bytes};

let buf = [3u8; 3];
let mut framed = FramedRead::new(&buf[..], BytesCodec);

if let Some(bytes) = framed.try_next().await? {
    assert_eq!(bytes, Bytes::copy_from_slice(&buf[..]));
}

Implementations

impl<T, D> FramedRead<T, D> where
    T: AsyncRead,
    D: Decoder
[src]

pub fn new(inner: T, decoder: D) -> Self[src]

Creates a new FramedRead transport with the given Decoder.

pub fn release(self) -> (T, D)[src]

Release the I/O and Decoder

pub fn into_inner(self) -> T[src]

Consumes the FramedRead, returning its underlying I/O stream.

Note that care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.

pub fn decoder(&self) -> &D[src]

Returns a reference to the underlying decoder.

Note that care should be taken to not tamper with the underlying decoder as it may corrupt the stream of frames otherwise being worked with.

pub fn decoder_mut(&mut self) -> &mut D[src]

Returns a mutable reference to the underlying decoder.

Note that care should be taken to not tamper with the underlying decoder as it may corrupt the stream of frames otherwise being worked with.

pub fn read_buffer(&self) -> &BytesMut[src]

Returns a reference to the read buffer.

Trait Implementations

impl<T: Debug, D: Debug> Debug for FramedRead<T, D>[src]

impl<T, D> Deref for FramedRead<T, D>[src]

type Target = T

The resulting type after dereferencing.

impl<T, D> DerefMut for FramedRead<T, D>[src]

impl<T, D> Stream for FramedRead<T, D> where
    T: AsyncRead + Unpin,
    D: Decoder
[src]

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

Values yielded by the stream.

Auto Trait Implementations

impl<T, D> RefUnwindSafe for FramedRead<T, D> where
    D: RefUnwindSafe,
    T: RefUnwindSafe

impl<T, D> Send for FramedRead<T, D> where
    D: Send,
    T: Send

impl<T, D> Sync for FramedRead<T, D> where
    D: Sync,
    T: Sync

impl<T, D> Unpin for FramedRead<T, D> where
    T: Unpin

impl<T, D> UnwindSafe for FramedRead<T, D> where
    D: UnwindSafe,
    T: UnwindSafe

Blanket Implementations

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

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

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

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

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

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

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

type Error = Infallible

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<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<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]