[][src]Trait tokio_buf::util::FromBufStream

pub trait FromBufStream<T: Buf>: Sized {
    type Builder;
    type Error;
    fn builder(hint: &SizeHint) -> Self::Builder;
fn extend(
        builder: &mut Self::Builder,
        buf: &mut T,
        hint: &SizeHint
    ) -> Result<(), Self::Error>;
fn build(builder: Self::Builder) -> Result<Self, Self::Error>; }

Conversion from a BufStream.

By implementing FromBufStream for a type, you define how it will be created from a buf stream. This is common for types which describe byte storage of some kind.

FromBufStream is rarely called explicitly, and it is instead used through BufStream's collect method.

Associated Types

type Builder

Type that is used to build Self while the BufStream is being consumed.

type Error

Error that might happen on conversion.

Loading content...

Required methods

fn builder(hint: &SizeHint) -> Self::Builder

Create a new, empty, builder. The provided hint can be used to inform reserving capacity.

fn extend(
    builder: &mut Self::Builder,
    buf: &mut T,
    hint: &SizeHint
) -> Result<(), Self::Error>

Extend the builder with the Buf.

This method is called whenever a new Buf value is obtained from the buf stream.

The provided size hint represents the state of the stream after buf has been yielded. The lower bound represents the minimum amount of data that will be provided after this call to extend returns.

fn build(builder: Self::Builder) -> Result<Self, Self::Error>

Finalize the building of Self.

Called once the buf stream is fully consumed.

Loading content...

Implementations on Foreign Types

impl<T: Buf> FromBufStream<T> for Vec<u8>[src]

type Builder = Vec<u8>

type Error = CollectVecError

impl<T: Buf> FromBufStream<T> for Bytes[src]

type Builder = Vec<u8>

type Error = CollectBytesError

Loading content...

Implementors

Loading content...