pub struct BufList { /* private fields */ }
Expand description
Data composed of a list of Bytes
chunks.
For more, see the crate documentation.
Implementations§
source§impl BufList
impl BufList
sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Creates a new, empty, BufList
with the given capacity.
sourcepub fn num_chunks(&self) -> usize
pub fn num_chunks(&self) -> usize
Returns the total number of chunks in this BufList
.
Examples
use buf_list::BufList;
let buf_list = vec![&b"hello"[..], &b"world"[..]].into_iter().collect::<BufList>();
assert_eq!(buf_list.num_chunks(), 2);
sourcepub fn num_bytes(&self) -> usize
pub fn num_bytes(&self) -> usize
Returns the total number of bytes across all chunks.
Examples
use buf_list::BufList;
let buf_list = vec![&b"hello"[..], &b"world"[..]].into_iter().collect::<BufList>();
assert_eq!(buf_list.num_bytes(), 10);
sourcepub fn get_chunk(&self, index: usize) -> Option<&Bytes>
pub fn get_chunk(&self, index: usize) -> Option<&Bytes>
Provides a reference to the chunk at the given index.
Examples
use buf_list::BufList;
use bytes::Bytes;
let buf_list = vec![&b"hello"[..], &b"world"[..]].into_iter().collect::<BufList>();
assert_eq!(buf_list.get_chunk(1), Some(&Bytes::from(&b"world"[..])));
sourcepub fn push_chunk<B: Buf>(&mut self, data: B) -> Bytes
pub fn push_chunk<B: Buf>(&mut self, data: B) -> Bytes
Adds a new chunk to this list.
If the provided Buf
is zero-length, it will not be added to the list.
Examples
use buf_list::BufList;
use bytes::{Buf, Bytes};
let mut buf_list = BufList::new();
// &'static [u8] implements Buf.
buf_list.push_chunk(&b"hello"[..]);
assert_eq!(buf_list.chunk(), &b"hello"[..]);
// Bytes also implements Buf.
buf_list.push_chunk(Bytes::from_static(&b"world"[..]));
assert_eq!(buf_list.num_chunks(), 2);
// A zero-length `Buf` will not be added to the list.
buf_list.push_chunk(Bytes::new());
assert_eq!(buf_list.num_chunks(), 2);
Trait Implementations§
source§impl Buf for BufList
impl Buf for BufList
source§fn remaining(&self) -> usize
fn remaining(&self) -> usize
Returns the number of bytes between the current position and the end of
the buffer. Read more
source§fn chunk(&self) -> &[u8] ⓘ
fn chunk(&self) -> &[u8] ⓘ
Returns a slice starting at the current position and of length between 0
and
Buf::remaining()
. Note that this can return shorter slice (this allows
non-continuous internal representation). Read moresource§fn chunks_vectored<'iovs>(&'iovs self, iovs: &mut [IoSlice<'iovs>]) -> usize
fn chunks_vectored<'iovs>(&'iovs self, iovs: &mut [IoSlice<'iovs>]) -> usize
Available on crate feature
std
only.source§fn copy_to_bytes(&mut self, len: usize) -> Bytes
fn copy_to_bytes(&mut self, len: usize) -> Bytes
source§fn has_remaining(&self) -> bool
fn has_remaining(&self) -> bool
Returns true if there are any more bytes to consume Read more
source§fn copy_to_slice(&mut self, dst: &mut [u8])
fn copy_to_slice(&mut self, dst: &mut [u8])
source§fn get_u16(&mut self) -> u16
fn get_u16(&mut self) -> u16
Gets an unsigned 16 bit integer from
self
in big-endian byte order. Read moresource§fn get_u16_le(&mut self) -> u16
fn get_u16_le(&mut self) -> u16
Gets an unsigned 16 bit integer from
self
in little-endian byte order. Read moresource§fn get_u16_ne(&mut self) -> u16
fn get_u16_ne(&mut self) -> u16
Gets an unsigned 16 bit integer from
self
in native-endian byte order. Read moresource§fn get_i16(&mut self) -> i16
fn get_i16(&mut self) -> i16
Gets a signed 16 bit integer from
self
in big-endian byte order. Read moresource§fn get_i16_le(&mut self) -> i16
fn get_i16_le(&mut self) -> i16
Gets a signed 16 bit integer from
self
in little-endian byte order. Read moresource§fn get_i16_ne(&mut self) -> i16
fn get_i16_ne(&mut self) -> i16
Gets a signed 16 bit integer from
self
in native-endian byte order. Read moresource§fn get_u32(&mut self) -> u32
fn get_u32(&mut self) -> u32
Gets an unsigned 32 bit integer from
self
in the big-endian byte order. Read moresource§fn get_u32_le(&mut self) -> u32
fn get_u32_le(&mut self) -> u32
Gets an unsigned 32 bit integer from
self
in the little-endian byte order. Read moresource§fn get_u32_ne(&mut self) -> u32
fn get_u32_ne(&mut self) -> u32
Gets an unsigned 32 bit integer from
self
in native-endian byte order. Read moresource§fn get_i32(&mut self) -> i32
fn get_i32(&mut self) -> i32
Gets a signed 32 bit integer from
self
in big-endian byte order. Read moresource§fn get_i32_le(&mut self) -> i32
fn get_i32_le(&mut self) -> i32
Gets a signed 32 bit integer from
self
in little-endian byte order. Read moresource§fn get_i32_ne(&mut self) -> i32
fn get_i32_ne(&mut self) -> i32
Gets a signed 32 bit integer from
self
in native-endian byte order. Read moresource§fn get_u64(&mut self) -> u64
fn get_u64(&mut self) -> u64
Gets an unsigned 64 bit integer from
self
in big-endian byte order. Read moresource§fn get_u64_le(&mut self) -> u64
fn get_u64_le(&mut self) -> u64
Gets an unsigned 64 bit integer from
self
in little-endian byte order. Read moresource§fn get_u64_ne(&mut self) -> u64
fn get_u64_ne(&mut self) -> u64
Gets an unsigned 64 bit integer from
self
in native-endian byte order. Read moresource§fn get_i64(&mut self) -> i64
fn get_i64(&mut self) -> i64
Gets a signed 64 bit integer from
self
in big-endian byte order. Read moresource§fn get_i64_le(&mut self) -> i64
fn get_i64_le(&mut self) -> i64
Gets a signed 64 bit integer from
self
in little-endian byte order. Read moresource§fn get_i64_ne(&mut self) -> i64
fn get_i64_ne(&mut self) -> i64
Gets a signed 64 bit integer from
self
in native-endian byte order. Read moresource§fn get_u128(&mut self) -> u128
fn get_u128(&mut self) -> u128
Gets an unsigned 128 bit integer from
self
in big-endian byte order. Read moresource§fn get_u128_le(&mut self) -> u128
fn get_u128_le(&mut self) -> u128
Gets an unsigned 128 bit integer from
self
in little-endian byte order. Read moresource§fn get_u128_ne(&mut self) -> u128
fn get_u128_ne(&mut self) -> u128
Gets an unsigned 128 bit integer from
self
in native-endian byte order. Read moresource§fn get_i128(&mut self) -> i128
fn get_i128(&mut self) -> i128
Gets a signed 128 bit integer from
self
in big-endian byte order. Read moresource§fn get_i128_le(&mut self) -> i128
fn get_i128_le(&mut self) -> i128
Gets a signed 128 bit integer from
self
in little-endian byte order. Read moresource§fn get_i128_ne(&mut self) -> i128
fn get_i128_ne(&mut self) -> i128
Gets a signed 128 bit integer from
self
in native-endian byte order. Read moresource§fn get_uint(&mut self, nbytes: usize) -> u64
fn get_uint(&mut self, nbytes: usize) -> u64
Gets an unsigned n-byte integer from
self
in big-endian byte order. Read moresource§fn get_uint_le(&mut self, nbytes: usize) -> u64
fn get_uint_le(&mut self, nbytes: usize) -> u64
Gets an unsigned n-byte integer from
self
in little-endian byte order. Read moresource§fn get_uint_ne(&mut self, nbytes: usize) -> u64
fn get_uint_ne(&mut self, nbytes: usize) -> u64
Gets an unsigned n-byte integer from
self
in native-endian byte order. Read moresource§fn get_int(&mut self, nbytes: usize) -> i64
fn get_int(&mut self, nbytes: usize) -> i64
Gets a signed n-byte integer from
self
in big-endian byte order. Read moresource§fn get_int_le(&mut self, nbytes: usize) -> i64
fn get_int_le(&mut self, nbytes: usize) -> i64
Gets a signed n-byte integer from
self
in little-endian byte order. Read moresource§fn get_int_ne(&mut self, nbytes: usize) -> i64
fn get_int_ne(&mut self, nbytes: usize) -> i64
Gets a signed n-byte integer from
self
in native-endian byte order. Read moresource§fn get_f32(&mut self) -> f32
fn get_f32(&mut self) -> f32
Gets an IEEE754 single-precision (4 bytes) floating point number from
self
in big-endian byte order. Read moresource§fn get_f32_le(&mut self) -> f32
fn get_f32_le(&mut self) -> f32
Gets an IEEE754 single-precision (4 bytes) floating point number from
self
in little-endian byte order. Read moresource§fn get_f32_ne(&mut self) -> f32
fn get_f32_ne(&mut self) -> f32
Gets an IEEE754 single-precision (4 bytes) floating point number from
self
in native-endian byte order. Read moresource§fn get_f64(&mut self) -> f64
fn get_f64(&mut self) -> f64
Gets an IEEE754 double-precision (8 bytes) floating point number from
self
in big-endian byte order. Read moresource§fn get_f64_le(&mut self) -> f64
fn get_f64_le(&mut self) -> f64
Gets an IEEE754 double-precision (8 bytes) floating point number from
self
in little-endian byte order. Read moresource§fn get_f64_ne(&mut self) -> f64
fn get_f64_ne(&mut self) -> f64
Gets an IEEE754 double-precision (8 bytes) floating point number from
self
in native-endian byte order. Read moresource§impl<B: Buf> Extend<B> for BufList
impl<B: Buf> Extend<B> for BufList
source§fn extend<T: IntoIterator<Item = B>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = B>>(&mut self, iter: T)
Extends a collection with the contents of an iterator. Read more
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
source§impl<B: Buf> FromIterator<B> for BufList
impl<B: Buf> FromIterator<B> for BufList
source§fn from_iter<T: IntoIterator<Item = B>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = B>>(iter: T) -> Self
Creates a value from an iterator. Read more