[][src]Struct tokio::codec::length_delimited::Builder

pub struct Builder { /* fields omitted */ }

Configure length delimited LengthDelimitedCodecs.

Builder enables constructing configured length delimited codecs. Note that not all configuration settings apply to both encoding and decoding. See the documentation for specific methods for more detail.

Methods

impl Builder[src]

pub fn new() -> Builder[src]

Creates a new length delimited codec builder with default configuration values.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .length_field_offset(0)
    .length_field_length(2)
    .length_adjustment(0)
    .num_skip(0)
    .new_read(io);

pub fn big_endian(&mut self) -> &mut Self[src]

Read the length field as a big endian integer

This is the default setting.

This configuration option applies to both encoding and decoding.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .big_endian()
    .new_read(io);

pub fn little_endian(&mut self) -> &mut Self[src]

Read the length field as a little endian integer

The default setting is big endian.

This configuration option applies to both encoding and decoding.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .little_endian()
    .new_read(io);

pub fn native_endian(&mut self) -> &mut Self[src]

Read the length field as a native endian integer

The default setting is big endian.

This configuration option applies to both encoding and decoding.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .native_endian()
    .new_read(io);

pub fn max_frame_length(&mut self, val: usize) -> &mut Self[src]

Sets the max frame length

This configuration option applies to both encoding and decoding. The default value is 8MB.

When decoding, the length field read from the byte stream is checked against this setting before any adjustments are applied. When encoding, the length of the submitted payload is checked against this setting.

When frames exceed the max length, an io::Error with the custom value of the FrameTooBig type will be returned.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .max_frame_length(8 * 1024)
    .new_read(io);

pub fn length_field_length(&mut self, val: usize) -> &mut Self[src]

Sets the number of bytes used to represent the length field

The default value is 4. The max value is 8.

This configuration option applies to both encoding and decoding.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .length_field_length(4)
    .new_read(io);

pub fn length_field_offset(&mut self, val: usize) -> &mut Self[src]

Sets the number of bytes in the header before the length field

This configuration option only applies to decoding.

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .length_field_offset(1)
    .new_read(io);

pub fn length_adjustment(&mut self, val: isize) -> &mut Self[src]

Delta between the payload length specified in the header and the real payload length

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .length_adjustment(-2)
    .new_read(io);

pub fn num_skip(&mut self, val: usize) -> &mut Self[src]

Sets the number of bytes to skip before reading the payload

Default value is length_field_len + length_field_offset

This configuration option only applies to decoding

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .num_skip(4)
    .new_read(io);

pub fn new_codec(&self) -> LengthDelimitedCodec[src]

Create a configured length delimited LengthDelimitedCodec

Examples

use tokio::codec::length_delimited::Builder;
Builder::new()
    .length_field_offset(0)
    .length_field_length(2)
    .length_adjustment(0)
    .num_skip(0)
    .new_codec();

pub fn new_read<T>(&self, upstream: T) -> FramedRead<T, LengthDelimitedCodec> where
    T: AsyncRead
[src]

Create a configured length delimited FramedRead

Examples

use tokio::codec::length_delimited::Builder;

Builder::new()
    .length_field_offset(0)
    .length_field_length(2)
    .length_adjustment(0)
    .num_skip(0)
    .new_read(io);

pub fn new_write<T>(&self, inner: T) -> FramedWrite<T, LengthDelimitedCodec> where
    T: AsyncWrite
[src]

Create a configured length delimited FramedWrite

Examples

length_delimited::Builder::new()
    .length_field_length(2)
    .new_write(io);

pub fn new_framed<T>(&self, inner: T) -> Framed<T, LengthDelimitedCodec> where
    T: AsyncRead + AsyncWrite
[src]

Create a configured length delimited Framed

Examples

length_delimited::Builder::new()
    .length_field_length(2)
    .new_framed(io);

Trait Implementations

impl Clone for Builder[src]

impl Copy for Builder[src]

impl Debug for Builder[src]

Auto Trait Implementations

impl RefUnwindSafe for Builder

impl Send for Builder

impl Sync for Builder

impl Unpin for Builder

impl UnwindSafe for Builder

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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.