Struct microcrates_bytes::buf::Chain [] [src]

pub struct Chain<T, U> { /* fields omitted */ }

A Chain sequences two buffers.

Chain is an adapter that links two underlying buffers and provides a continous view across both buffers. It is able to sequence either immutable buffers (Buf values) or mutable buffers (BufMut values).

This struct is generally created by calling Buf::chain. Please see that function's documentation for more detail.

Examples

use microcrates_bytes::{Bytes, Buf, IntoBuf};
use microcrates_bytes::buf::Chain;

let buf = Bytes::from(&b"hello "[..]).into_buf()
            .chain(Bytes::from(&b"world"[..]));

let full: Bytes = buf.collect();
assert_eq!(full[..], b"hello world"[..]);

Methods

impl<T, U> Chain<T, U>
[src]

[src]

Creates a new Chain sequencing the provided values.

Examples

use microcrates_bytes::BytesMut;
use microcrates_bytes::buf::Chain;

let buf = Chain::new(
    BytesMut::with_capacity(1024),
    BytesMut::with_capacity(1024));

// Use the chained buffer

[src]

Gets a reference to the first underlying Buf.

Examples

use microcrates_bytes::{Bytes, Buf, IntoBuf};

let buf = Bytes::from(&b"hello"[..]).into_buf()
            .chain(Bytes::from(&b"world"[..]));

assert_eq!(buf.first_ref().get_ref()[..], b"hello"[..]);

[src]

Gets a mutable reference to the first underlying Buf.

Examples

use microcrates_bytes::{Bytes, Buf, IntoBuf};

let mut buf = Bytes::from(&b"hello "[..]).into_buf()
                .chain(Bytes::from(&b"world"[..]));

buf.first_mut().set_position(1);

let full: Bytes = buf.collect();
assert_eq!(full[..], b"ello world"[..]);

[src]

Gets a reference to the last underlying Buf.

Examples

use microcrates_bytes::{Bytes, Buf, IntoBuf};

let buf = Bytes::from(&b"hello"[..]).into_buf()
            .chain(Bytes::from(&b"world"[..]));

assert_eq!(buf.last_ref().get_ref()[..], b"world"[..]);

[src]

Gets a mutable reference to the last underlying Buf.

Examples

use microcrates_bytes::{Bytes, Buf, IntoBuf};

let mut buf = Bytes::from(&b"hello "[..]).into_buf()
                .chain(Bytes::from(&b"world"[..]));

buf.last_mut().set_position(1);

let full: Bytes = buf.collect();
assert_eq!(full[..], b"hello orld"[..]);

[src]

Consumes this Chain, returning the underlying values.

Examples

use microcrates_bytes::{Bytes, Buf, IntoBuf};

let buf = Bytes::from(&b"hello"[..]).into_buf()
            .chain(Bytes::from(&b"world"[..]));

let (first, last) = buf.into_inner();
assert_eq!(first.get_ref()[..], b"hello"[..]);
assert_eq!(last.get_ref()[..], b"world"[..]);

Trait Implementations

impl<T: Debug, U: Debug> Debug for Chain<T, U>
[src]

[src]

Formats the value using the given formatter.

impl<T, U> Buf for Chain<T, U> where
    T: Buf,
    U: Buf
[src]

[src]

Returns the number of bytes between the current position and the end of the buffer. Read more

[src]

Returns a slice starting at the current position and of length between 0 and Buf::remaining(). Read more

[src]

Advance the internal cursor of the Buf Read more

[src]

Returns true if there are any more bytes to consume Read more

[src]

Copies bytes from self into dst. Read more

[src]

Gets an unsigned 8 bit integer from self. Read more

[src]

Gets a signed 8 bit integer from self. Read more

[src]

Gets an unsigned 16 bit integer from self in the specified byte order. Read more

[src]

Gets a signed 16 bit integer from self in the specified byte order. Read more

[src]

Gets an unsigned 32 bit integer from self in the specified byte order. Read more

[src]

Gets a signed 32 bit integer from self in the specified byte order. Read more

[src]

Gets an unsigned 64 bit integer from self in the specified byte order. Read more

[src]

Gets a signed 64 bit integer from self in the specified byte order. Read more

[src]

Gets an unsigned n-byte integer from self in the specified byte order. Read more

[src]

Gets a signed n-byte integer from self in the specified byte order. Read more

[src]

Gets an IEEE754 single-precision (4 bytes) floating point number from self in the specified byte order. Read more

[src]

Gets an IEEE754 double-precision (8 bytes) floating point number from self in the specified byte order. Read more

[src]

Transforms a Buf into a concrete buffer. Read more

[src]

Creates an adaptor which will read at most limit bytes from self. Read more

[src]

Creates an adaptor which will chain this buffer with another. Read more

[src]

Creates a "by reference" adaptor for this instance of Buf. Read more

[src]

Creates an adaptor which implements the Read trait for self. Read more

[src]

Returns an iterator over the bytes contained by the buffer. Read more

impl<T, U> BufMut for Chain<T, U> where
    T: BufMut,
    U: BufMut
[src]

[src]

Returns the number of bytes that can be written from the current position until the end of the buffer is reached. Read more

[src]

Returns a mutable slice starting at the current BufMut position and of length between 0 and BufMut::remaining_mut(). Read more

[src]

Advance the internal cursor of the BufMut Read more

[src]

Returns true if there is space in self for more bytes. Read more

[src]

Transfer bytes into self from src and advance the cursor by the number of bytes written. Read more

[src]

Transfer bytes into self from src and advance the cursor by the number of bytes written. Read more

[src]

Writes an unsigned 8 bit integer to self. Read more

[src]

Writes a signed 8 bit integer to self. Read more

[src]

Writes an unsigned 16 bit integer to self in the specified byte order. Read more

[src]

Writes a signed 16 bit integer to self in the specified byte order. Read more

[src]

Writes an unsigned 32 bit integer to self in the specified byte order. Read more

[src]

Writes a signed 32 bit integer to self in the specified byte order. Read more

[src]

Writes an unsigned 64 bit integer to self in the specified byte order. Read more

[src]

Writes a signed 64 bit integer to self in the specified byte order. Read more

[src]

Writes an unsigned n-byte integer to self in the specified byte order. Read more

[src]

Writes a signed n-byte integer to self in the specified byte order. Read more

[src]

Writes an IEEE754 single-precision (4 bytes) floating point number to self in the specified byte order. Read more

[src]

Writes an IEEE754 double-precision (8 bytes) floating point number to self in the specified byte order. Read more

[src]

Creates a "by reference" adaptor for this instance of BufMut. Read more

[src]

Creates an adaptor which implements the Write trait for self. Read more