Struct bytes::buf::Chain [−][src]
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 bytes::{Bytes, Buf, IntoBuf}; use 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]
[−]
impl<T, U> Chain<T, U>
pub fn new(a: T, b: U) -> Chain<T, U>
[src]
[−]
pub fn new(a: T, b: U) -> Chain<T, U>
Creates a new Chain
sequencing the provided values.
Examples
use bytes::BytesMut; use bytes::buf::Chain; let buf = Chain::new( BytesMut::with_capacity(1024), BytesMut::with_capacity(1024)); // Use the chained buffer
ⓘImportant traits for &'a mut Rpub fn first_ref(&self) -> &T
[src]
[−]
ⓘImportant traits for &'a mut R
pub fn first_ref(&self) -> &T
Gets a reference to the first underlying Buf
.
Examples
use 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"[..]);
ⓘImportant traits for &'a mut Rpub fn first_mut(&mut self) -> &mut T
[src]
[−]
ⓘImportant traits for &'a mut R
pub fn first_mut(&mut self) -> &mut T
Gets a mutable reference to the first underlying Buf
.
Examples
use 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"[..]);
ⓘImportant traits for &'a mut Rpub fn last_ref(&self) -> &U
[src]
[−]
ⓘImportant traits for &'a mut R
pub fn last_ref(&self) -> &U
Gets a reference to the last underlying Buf
.
Examples
use 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"[..]);
ⓘImportant traits for &'a mut Rpub fn last_mut(&mut self) -> &mut U
[src]
[−]
ⓘImportant traits for &'a mut R
pub fn last_mut(&mut self) -> &mut U
Gets a mutable reference to the last underlying Buf
.
Examples
use 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"[..]);
pub fn into_inner(self) -> (T, U)
[src]
[−]
pub fn into_inner(self) -> (T, U)
Consumes this Chain
, returning the underlying values.
Examples
use 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]
[+]
impl<T: Debug, U: Debug> Debug for Chain<T, U>
impl<T, U> Buf for Chain<T, U> where
T: Buf,
U: Buf,
[src]
[+]
impl<T, U> Buf for Chain<T, U> where
T: Buf,
U: Buf,
impl<T, U> BufMut for Chain<T, U> where
T: BufMut,
U: BufMut,
[src]
[+]
impl<T, U> BufMut for Chain<T, U> where
T: BufMut,
U: BufMut,