pub struct UnlimitedBuffer<T: Clone> { /* private fields */ }Available on crate feature
alloc only.Expand description
Zero re-allocation linked-page buffer. Faster than a Vec for large datasets
because it does not require pre-allocation of memory to achieve zero-reallocation.
However, wastes memory for very small data sets since the minimum size quanta
that allocates is 4k * sizeof(T). IE, a u8 page will be 4k wide, but a
u128 page will be 64k wide and a Box<T> page will either be 32k (standard
types) or 64k wide (dyn types)
Implementations§
Source§impl<T: Clone> UnlimitedBuffer<T>
impl<T: Clone> UnlimitedBuffer<T>
pub fn new() -> UnlimitedBuffer<T> ⓘ
pub fn get(&self, index: usize) -> Option<&T>
pub fn get_mut(&mut self, index: usize) -> Option<&mut T>
pub fn capacity(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn len(&self) -> u64
pub fn clear(&mut self)
pub fn front(&self) -> Option<&T>
pub fn front_mut(&mut self) -> Option<&mut T>
pub fn back(&self) -> Option<&T>
pub fn back_mut(&mut self) -> Option<&mut T>
Sourcepub fn append_slice(&mut self, slice: &[T])
pub fn append_slice(&mut self, slice: &[T])
Appends all elements of the slice to the back.
Sourcepub fn push_front(&mut self, value: T)
pub fn push_front(&mut self, value: T)
Push a value to the front
Sourcepub fn iter_blocks<F: FnMut(&[Option<T>])>(&mut self, f: F)
pub fn iter_blocks<F: FnMut(&[Option<T>])>(&mut self, f: F)
Iterate over each block of data stored
Trait Implementations§
Source§impl Bits for UnlimitedBuffer<u8>
impl Bits for UnlimitedBuffer<u8>
Source§fn read_bool(&mut self) -> Result<bool, BitsError>
fn read_bool(&mut self) -> Result<bool, BitsError>
Reads a single bool (u8), returning true if 1, false if 0, or InvalidInput if anything else.
Source§fn next_bool(&mut self) -> Result<Option<bool>, BitsError>
fn next_bool(&mut self) -> Result<Option<bool>, BitsError>
Reads a single bool (u8), returning true if 1, false if 0, or InvalidInput if anything else.
Source§fn read_be_utf8_char(&mut self) -> Result<char, BitsError>
fn read_be_utf8_char(&mut self) -> Result<char, BitsError>
Reads 1, 2, 3, or 4 bytes to construct a UTF-8 charpoint.
Source§fn read_be_u16(&mut self) -> Result<u16, BitsError>
fn read_be_u16(&mut self) -> Result<u16, BitsError>
Reads a single
u16 in big-endian order, 2 bytes, MSB first.Source§fn read_le_u16(&mut self) -> Result<u16, BitsError>
fn read_le_u16(&mut self) -> Result<u16, BitsError>
Reads a single
u16 in little-endian order, 2 bytes, LSB first.Source§fn next_be_u16(&mut self) -> Result<Option<u16>, BitsError>
fn next_be_u16(&mut self) -> Result<Option<u16>, BitsError>
Optionally reads a single
u16 in big-endian order, 2 bytes, MSB first.Source§fn next_le_u16(&mut self) -> Result<Option<u16>, BitsError>
fn next_le_u16(&mut self) -> Result<Option<u16>, BitsError>
Optionally reads a single
u16 in little-endian order, 2 bytes, LSB first.Source§fn read_be_u32(&mut self) -> Result<u32, BitsError>
fn read_be_u32(&mut self) -> Result<u32, BitsError>
Reads a single
u32 in big-endian order, 4 bytes, MSB first.Source§fn read_le_u32(&mut self) -> Result<u32, BitsError>
fn read_le_u32(&mut self) -> Result<u32, BitsError>
Reads a single
u32 in little-endian order, 4 bytes, LSB first.Source§fn next_be_u32(&mut self) -> Result<Option<u32>, BitsError>
fn next_be_u32(&mut self) -> Result<Option<u32>, BitsError>
Optionally reads a single
u32 in big-endian order, 4 bytes, MSB first.Source§fn next_le_u32(&mut self) -> Result<Option<u32>, BitsError>
fn next_le_u32(&mut self) -> Result<Option<u32>, BitsError>
Optionally reads a single
u32 in little-endian order, 4 bytes, LSB first.Source§fn read_be_u64(&mut self) -> Result<u64, BitsError>
fn read_be_u64(&mut self) -> Result<u64, BitsError>
Reads a single
u64 in big-endian order, 8 bytes, MSB first.Source§fn read_le_u64(&mut self) -> Result<u64, BitsError>
fn read_le_u64(&mut self) -> Result<u64, BitsError>
Reads a single
u64 in big-endian order, 8 bytes, MSB first.Source§fn next_be_u64(&mut self) -> Result<Option<u64>, BitsError>
fn next_be_u64(&mut self) -> Result<Option<u64>, BitsError>
Optionally reads a single
u64 in big-endian order, 8 bytes, MSB first.Source§fn next_le_u64(&mut self) -> Result<Option<u64>, BitsError>
fn next_le_u64(&mut self) -> Result<Option<u64>, BitsError>
Optionally reads a single
u64 in little-endian order, 4 bytes, LSB first.Source§fn read_be_u128(&mut self) -> Result<u128, BitsError>
fn read_be_u128(&mut self) -> Result<u128, BitsError>
Reads a single
u128 in big-endian order, 16 bytes, MSB first.Source§fn next_be_u128(&mut self) -> Result<Option<u128>, BitsError>
fn next_be_u128(&mut self) -> Result<Option<u128>, BitsError>
Optionally reads a single
u128 in big-endian order, 16 bytes, MSB first.Source§fn read_be_i128(&mut self) -> Result<i128, BitsError>
fn read_be_i128(&mut self) -> Result<i128, BitsError>
Reads a single
i128 in big-endian order, 16 bytes, MSB first.Source§fn next_be_i128(&mut self) -> Result<Option<i128>, BitsError>
fn next_be_i128(&mut self) -> Result<Option<i128>, BitsError>
Optionally reads a single
i128 in big-endian order, 16 bytes, MSB first.Source§fn read_be_f32(&mut self) -> Result<f32, BitsError>
fn read_be_f32(&mut self) -> Result<f32, BitsError>
Reads a single
f32, 4 bytes. Standard IEEE754 encodingSource§fn read_le_f32(&mut self) -> Result<f32, BitsError>
fn read_le_f32(&mut self) -> Result<f32, BitsError>
Reads a single
f32, 4 bytes. Reversed IEEE754 encodingSource§fn read_f32(&mut self, order: ByteOrder) -> Result<f32, BitsError>
fn read_f32(&mut self, order: ByteOrder) -> Result<f32, BitsError>
Reads a single
f32, 4 bytes. Specified byte ordering.Source§fn next_be_f32(&mut self) -> Result<Option<f32>, BitsError>
fn next_be_f32(&mut self) -> Result<Option<f32>, BitsError>
Optionally reads a single
f32, 4 bytes. Standard IEEE754 encodingSource§fn next_le_f32(&mut self) -> Result<Option<f32>, BitsError>
fn next_le_f32(&mut self) -> Result<Option<f32>, BitsError>
Optionally reads a single
f32, 4 bytes. Reversed IEEE754 encodingSource§fn read_be_f64(&mut self) -> Result<f64, BitsError>
fn read_be_f64(&mut self) -> Result<f64, BitsError>
Reads a single
f64, 8 bytes. Standard IEEE754 encodingSource§fn read_le_f64(&mut self) -> Result<f64, BitsError>
fn read_le_f64(&mut self) -> Result<f64, BitsError>
Reads a single
f64, 8 bytes. Reversed IEEE754 encodingSource§fn next_be_f64(&mut self) -> Result<Option<f64>, BitsError>
fn next_be_f64(&mut self) -> Result<Option<f64>, BitsError>
Optionally reads a single
f64, 8 bytes. Standard IEEE754 encodingSource§fn next_le_f64(&mut self) -> Result<Option<f64>, BitsError>
fn next_le_f64(&mut self) -> Result<Option<f64>, BitsError>
Optionally reads a single
f64, 8 bytes. Reversed IEEE754 encodingSource§fn read_f64(&mut self, order: ByteOrder) -> Result<f64, BitsError>
fn read_f64(&mut self, order: ByteOrder) -> Result<f64, BitsError>
Reads a single
f64, 8 bytes. Specified byte ordering.Source§fn read_be_i16(&mut self) -> Result<i16, BitsError>
fn read_be_i16(&mut self) -> Result<i16, BitsError>
Reads a single
i16 in big-endian order, 2 bytes, MSB first.Source§fn read_le_i16(&mut self) -> Result<i16, BitsError>
fn read_le_i16(&mut self) -> Result<i16, BitsError>
Reads a single
i16 in little-endian order, 2 bytes, LSB first.Source§fn next_be_i16(&mut self) -> Result<Option<i16>, BitsError>
fn next_be_i16(&mut self) -> Result<Option<i16>, BitsError>
Optionally reads a single
i16 in big-endian order, 2 bytes, MSB first.Source§fn next_le_i16(&mut self) -> Result<Option<i16>, BitsError>
fn next_le_i16(&mut self) -> Result<Option<i16>, BitsError>
Optionally reads a single
i16 in little-endian order, 2 bytes, LSB first.Source§fn read_be_i32(&mut self) -> Result<i32, BitsError>
fn read_be_i32(&mut self) -> Result<i32, BitsError>
Reads a single
i32 in big-endian order, 4 bytes, MSB first.Source§fn read_le_i32(&mut self) -> Result<i32, BitsError>
fn read_le_i32(&mut self) -> Result<i32, BitsError>
Reads a single
i32 in little-endian order, 4 bytes, LSB first.Source§fn next_be_i32(&mut self) -> Result<Option<i32>, BitsError>
fn next_be_i32(&mut self) -> Result<Option<i32>, BitsError>
Optionally reads a single
i32 in big-endian order, 4 bytes, MSB first.Source§fn next_le_i32(&mut self) -> Result<Option<i32>, BitsError>
fn next_le_i32(&mut self) -> Result<Option<i32>, BitsError>
Optionally reads a single
i32 in little-endian order, 4 bytes,LSB first.Source§fn read_be_i64(&mut self) -> Result<i64, BitsError>
fn read_be_i64(&mut self) -> Result<i64, BitsError>
Reads a single
i64 in big-endian order, 8 bytes, MSB first.Source§fn read_le_i64(&mut self) -> Result<i64, BitsError>
fn read_le_i64(&mut self) -> Result<i64, BitsError>
Reads a single
i64 in little-endian order, 8 bytes, LSB first.Source§fn next_be_i64(&mut self) -> Result<Option<i64>, BitsError>
fn next_be_i64(&mut self) -> Result<Option<i64>, BitsError>
Optionally reads a single
i64 in big-endian order, 8 bytes, MSB first.Source§fn next_le_i64(&mut self) -> Result<Option<i64>, BitsError>
fn next_le_i64(&mut self) -> Result<Option<i64>, BitsError>
Optionally reads a single
i64 in little-endian order, 8 bytes, LSB first.Source§fn read_le_i128(&mut self) -> Result<i128, BitsError>
fn read_le_i128(&mut self) -> Result<i128, BitsError>
Reads a single
i128 in little-endian order, 8 bytes, LSB first.Source§fn next_le_i128(&mut self) -> Result<Option<i128>, BitsError>
fn next_le_i128(&mut self) -> Result<Option<i128>, BitsError>
Optionally reads a single
i64 in little-endian order, 8 bytes, LSB first.Source§fn read_le_u128(&mut self) -> Result<u128, BitsError>
fn read_le_u128(&mut self) -> Result<u128, BitsError>
Reads a single
u128 in little-endian order, 8 bytes, LSB first.Source§fn next_le_u128(&mut self) -> Result<Option<u128>, BitsError>
fn next_le_u128(&mut self) -> Result<Option<u128>, BitsError>
Optionally reads a single
i64 in little-endian order, 8 bytes, LSB first.Source§fn advance(&mut self, len: usize) -> Result<usize, BitsError>
fn advance(&mut self, len: usize) -> Result<usize, BitsError>
Advances the stream by at most ‘len’ bytes. The actual amount of bytes advanced may be
less, and is returned in [
Ok(usize)]fn read_u8_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>where
T: MutBits,
fn read_u16_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>where
T: MutBits,
fn read_u32_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>where
T: MutBits,
fn read_u64_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>where
T: MutBits,
Source§fn read_u8_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_u8_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u8 declaring the size.Source§fn read_be_u16_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_be_u16_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u16 declaring the size.Source§fn read_le_u16_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_le_u16_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u16 declaring the size.Source§fn read_be_u32_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_be_u32_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u32 declaring the size.Source§fn read_le_u32_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_le_u32_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u32 declaring the size.Source§fn read_be_u64_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_be_u64_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u64 declaring the size.Source§fn read_le_u64_blob(&mut self) -> Result<Vec<u8>, BitsError>
fn read_le_u64_blob(&mut self) -> Result<Vec<u8>, BitsError>
Reads a sized blob, a series of bytes preceded by a
u64 declaring the size.Source§fn read_exact_vec(&mut self, size: usize) -> Result<Vec<u8>, BitsError>
fn read_exact_vec(&mut self, size: usize) -> Result<Vec<u8>, BitsError>
Reads the specified amount of bytes into a
Vec<u8> and returns itSource§fn read_all_str_lossy(&mut self) -> Result<String, BitsError>
fn read_all_str_lossy(&mut self) -> Result<String, BitsError>
Reads the entire stream into a UTF-8 String, dropping all other bytes.
Source§fn read_str_sized_lossy(&mut self, len: usize) -> Result<String, BitsError>
fn read_str_sized_lossy(&mut self, len: usize) -> Result<String, BitsError>
Reads the specified amount of bytes into a UTF-8 String, dropping all other bytes.
Source§fn read_all_vec(&mut self) -> Result<Vec<u8>, BitsError>
fn read_all_vec(&mut self) -> Result<Vec<u8>, BitsError>
Reads to the end of the stream and returns the data as a
Vec<u8>Source§fn read_until(&mut self, search: &[u8]) -> Result<Vec<u8>, BitsError>
fn read_until(&mut self, search: &[u8]) -> Result<Vec<u8>, BitsError>
Reads from the input stream until: Read more
Source§fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, BitsError>
fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, BitsError>
Reads until the next
\n character, ignoring any \r characters along
the way.Source§fn read_line_str_lossy(&mut self) -> Result<Option<String>, BitsError>
fn read_line_str_lossy(&mut self) -> Result<Option<String>, BitsError>
Reads until the next
\n character, then calls String::from_utf8_lossy.Source§fn read_line_str(&mut self) -> Result<Option<String>, BitsError>
fn read_line_str(&mut self) -> Result<Option<String>, BitsError>
Reads until the next
\n character, then calls String::from_utf8Source§fn consume_until(&mut self, search: &[u8]) -> Result<(), BitsError>
fn consume_until(&mut self, search: &[u8]) -> Result<(), BitsError>
Consumes data from the input stream until: Read more
Source§fn read_str_u32_blob(&mut self) -> Result<String, BitsError>
fn read_str_u32_blob(&mut self) -> Result<String, BitsError>
Reads a specific sized string from the stream, a string prefixed by a
4-byte big-endian length.
Source§fn read_exact<const N: usize>(&mut self) -> Result<[u8; N], BitsError>
fn read_exact<const N: usize>(&mut self) -> Result<[u8; N], BitsError>
Reads the specified amount of bytes into a stack-allocated array.
Source§fn read_exact_into<T>(
&mut self,
size: usize,
into: &mut T,
) -> Result<(), BitsError>where
T: MutBits,
fn read_exact_into<T>(
&mut self,
size: usize,
into: &mut T,
) -> Result<(), BitsError>where
T: MutBits,
Reads the specified amount of bytes into the specified target.
Source§fn read_all_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>where
T: MutBits,
fn read_all_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>where
T: MutBits,
Reads to the end of the stream, and writes it into the specified target.
Source§fn read_some_into<T>(&mut self, buf: &mut T) -> Result<usize, BitsError>where
T: MutBits,
fn read_some_into<T>(&mut self, buf: &mut T) -> Result<usize, BitsError>where
T: MutBits,
Reads some subset of the data into the specified target.
Source§fn read_u16(&mut self, order: ByteOrder) -> Result<u16, BitsError>
fn read_u16(&mut self, order: ByteOrder) -> Result<u16, BitsError>
Reads a single
u16 in the specified order order, 2 bytes.Source§fn read_u32(&mut self, order: ByteOrder) -> Result<u32, BitsError>
fn read_u32(&mut self, order: ByteOrder) -> Result<u32, BitsError>
Reads a single
u32 in the specified order order, 4 bytes.Source§fn read_u64(&mut self, order: ByteOrder) -> Result<u64, BitsError>
fn read_u64(&mut self, order: ByteOrder) -> Result<u64, BitsError>
Reads a single
u64 in the specified order order, 8 bytes.Source§fn read_u128(&mut self, order: ByteOrder) -> Result<u128, BitsError>
fn read_u128(&mut self, order: ByteOrder) -> Result<u128, BitsError>
Reads a single
u128 in the specified order order, 16 bytes.Source§fn read_i16(&mut self, order: ByteOrder) -> Result<i16, BitsError>
fn read_i16(&mut self, order: ByteOrder) -> Result<i16, BitsError>
Reads a single
i16 in the specified order order, 2 bytes.Source§fn read_i32(&mut self, order: ByteOrder) -> Result<i32, BitsError>
fn read_i32(&mut self, order: ByteOrder) -> Result<i32, BitsError>
Reads a single
i32 in the specified order order, 4 bytes.Source§impl<T: Clone + Clone> Clone for UnlimitedBuffer<T>
impl<T: Clone + Clone> Clone for UnlimitedBuffer<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T: Clone> Iterator for UnlimitedBuffer<T>
impl<T: Clone> Iterator for UnlimitedBuffer<T>
Source§fn next(&mut self) -> Option<Self::Item>
fn next(&mut self) -> Option<Self::Item>
Advances the iterator and returns the next value. Read more
Source§fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_next_chunk)Advances the iterator and returns an array containing the next
N values. Read more1.0.0 · Source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · Source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · Source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
Consumes the iterator, returning the last element. Read more
Source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
🔬This is a nightly-only experimental API. (
iter_advance_by)Advances the iterator by
n elements. Read more1.0.0 · Source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
Returns the
nth element of the iterator. Read more1.28.0 · Source§fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
Creates an iterator starting at the same point, but stepping by
the given amount at each iteration. Read more
1.0.0 · Source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · Source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
‘Zips up’ two iterators into a single iterator of pairs. Read more
Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
🔬This is a nightly-only experimental API. (
iter_intersperse)Creates a new iterator which places a copy of
separator between adjacent
items of the original iterator. Read moreSource§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
🔬This is a nightly-only experimental API. (
iter_intersperse)Creates a new iterator which places an item generated by
separator
between adjacent items of the original iterator. Read more1.0.0 · Source§fn map<B, F>(self, f: F) -> Map<Self, F>
fn map<B, F>(self, f: F) -> Map<Self, F>
Takes a closure and creates an iterator which calls that closure on each
element. Read more
1.0.0 · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P>
fn filter<P>(self, predicate: P) -> Filter<Self, P>
Creates an iterator which uses a closure to determine if an element
should be yielded. Read more
1.0.0 · Source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
Creates an iterator that both filters and maps. Read more
1.0.0 · Source§fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
Creates an iterator which gives the current iteration count as well as
the next value. Read more
1.0.0 · Source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
1.0.0 · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · Source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · Source§fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
Creates an iterator that skips the first
n elements. Read more1.0.0 · Source§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
Creates an iterator that yields the first
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · Source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
Creates an iterator that works like map, but flattens nested structure. Read more
1.29.0 · Source§fn flatten(self) -> Flatten<Self>
fn flatten(self) -> Flatten<Self>
Creates an iterator that flattens nested structure. Read more
Source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
🔬This is a nightly-only experimental API. (
iter_map_windows)Calls the given function
f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more1.0.0 · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F>
Does something with each element of an iterator, passing the value on. Read more
1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adapter for this instance of
Iterator. Read moreSource§fn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
🔬This is a nightly-only experimental API. (
iterator_try_collect)Fallibly transforms an iterator into a collection, short circuiting if
a failure is encountered. Read more
Source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
🔬This is a nightly-only experimental API. (
iter_collect_into)Collects all the items from an iterator into a collection. Read more
1.0.0 · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Consumes an iterator, creating two collections from it. Read more
Source§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
🔬This is a nightly-only experimental API. (
iter_is_partitioned)Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return
true precede all those that return false. Read more1.27.0 · Source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
An iterator method that applies a function as long as it returns
successfully, producing a single, final value. Read more
1.27.0 · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
An iterator method that applies a fallible function to each item in the
iterator, stopping at the first error and returning that error. Read more
1.0.0 · Source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
Folds every element into an accumulator by applying an operation,
returning the final result. Read more
1.51.0 · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Reduces the elements to a single one, by repeatedly applying a reducing
operation. Read more
Source§fn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
🔬This is a nightly-only experimental API. (
iterator_try_reduce)Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
Tests if every element of the iterator matches a predicate. Read more
1.0.0 · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
Tests if any element of the iterator matches a predicate. Read more
1.0.0 · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Applies function to the elements of iterator and returns
the first non-none result. Read more
Source§fn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
🔬This is a nightly-only experimental API. (
try_find)Applies function to the elements of iterator and returns
the first true result or the first error. Read more
1.0.0 · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
Searches for an element in an iterator, returning its index. Read more
1.0.0 · Source§fn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
Returns the maximum element of an iterator. Read more
1.0.0 · Source§fn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
Returns the minimum element of an iterator. Read more
1.6.0 · Source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the maximum value from the
specified function. Read more
1.15.0 · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the maximum value with respect to the
specified comparison function. Read more
1.6.0 · Source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the minimum value from the
specified function. Read more
1.15.0 · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the minimum value with respect to the
specified comparison function. Read more
1.0.0 · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · Source§fn copied<'a, T>(self) -> Copied<Self>
fn copied<'a, T>(self) -> Copied<Self>
Creates an iterator which copies all of its elements. Read more
Source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_array_chunks)Returns an iterator over
N elements of the iterator at a time. Read more1.11.0 · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
Iterates over the entire iterator, multiplying all the elements Read more
Source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
🔬This is a nightly-only experimental API. (
iter_order_by)Lexicographically compares the elements of this
Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · Source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
Lexicographically compares the
PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moreSource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
🔬This is a nightly-only experimental API. (
iter_order_by)Lexicographically compares the elements of this
Iterator with those
of another with respect to the specified comparison function. Read moreSource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
🔬This is a nightly-only experimental API. (
iter_order_by)1.5.0 · Source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
less than those of another. Read more1.5.0 · Source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
less or equal to those of another. Read more1.5.0 · Source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
greater than those of another. Read more1.5.0 · Source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
greater than or equal to those of another. Read more1.82.0 · Source§fn is_sorted(self) -> bool
fn is_sorted(self) -> bool
Checks if the elements of this iterator are sorted. Read more
1.82.0 · Source§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
Checks if the elements of this iterator are sorted using the given comparator function. Read more
1.82.0 · Source§fn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
Checks if the elements of this iterator are sorted using the given key extraction
function. Read more
Source§impl MutBits for UnlimitedBuffer<u8>
impl MutBits for UnlimitedBuffer<u8>
Source§fn write_be_utf8_char(&mut self, val: char) -> Result<usize, BitsError>
fn write_be_utf8_char(&mut self, val: char) -> Result<usize, BitsError>
Encodes the character as UTF-8, and writes anywhere from 1-4 bytes. The number of bytes
written is returned.
Source§fn write_be_u16(&mut self, val: u16) -> Result<(), BitsError>
fn write_be_u16(&mut self, val: u16) -> Result<(), BitsError>
Writes a single
u16 in big-endian order, 2 bytes, MSB first.Source§fn write_le_u16(&mut self, val: u16) -> Result<(), BitsError>
fn write_le_u16(&mut self, val: u16) -> Result<(), BitsError>
Writes a single
u16 in little-endian order, 2 bytes, LSB first.Source§fn write_be_u32(&mut self, val: u32) -> Result<(), BitsError>
fn write_be_u32(&mut self, val: u32) -> Result<(), BitsError>
Writes a single
u32 in big-endian order, 4 bytes, MSB first.Source§fn write_le_u32(&mut self, val: u32) -> Result<(), BitsError>
fn write_le_u32(&mut self, val: u32) -> Result<(), BitsError>
Writes a single
u32 in little-endian order, 4 bytes, LSB first.Source§fn write_be_u64(&mut self, val: u64) -> Result<(), BitsError>
fn write_be_u64(&mut self, val: u64) -> Result<(), BitsError>
Writes a single
u64 in big-endian order, 8 bytes, MSB first.Source§fn write_le_u64(&mut self, val: u64) -> Result<(), BitsError>
fn write_le_u64(&mut self, val: u64) -> Result<(), BitsError>
Writes a single
u64 in little-endian order, 8 bytes, LSB first.Source§fn write_be_u128(&mut self, val: u128) -> Result<(), BitsError>
fn write_be_u128(&mut self, val: u128) -> Result<(), BitsError>
Writes a single
u128 in big-endian order, 16 bytes, MSB first.Source§fn write_le_u128(&mut self, val: u128) -> Result<(), BitsError>
fn write_le_u128(&mut self, val: u128) -> Result<(), BitsError>
Writes a single
u128 in little-endian order, 16 bytes, LSB first.Source§fn write_be_f32(&mut self, val: f32) -> Result<(), BitsError>
fn write_be_f32(&mut self, val: f32) -> Result<(), BitsError>
Writes a single
f32 in standard IEEE754 format, 4 bytesSource§fn write_le_f32(&mut self, val: f32) -> Result<(), BitsError>
fn write_le_f32(&mut self, val: f32) -> Result<(), BitsError>
Writes a single
f32 in reversed IEEE754 format, 4 bytesSource§fn write_be_f64(&mut self, val: f64) -> Result<(), BitsError>
fn write_be_f64(&mut self, val: f64) -> Result<(), BitsError>
Writes a single
u16 in standard IEEE754 format, 8 bytesSource§fn write_le_f64(&mut self, val: f64) -> Result<(), BitsError>
fn write_le_f64(&mut self, val: f64) -> Result<(), BitsError>
Writes a single
u16 in reversed IEEE754 format, 8 bytesSource§fn write_be_i16(&mut self, val: i16) -> Result<(), BitsError>
fn write_be_i16(&mut self, val: i16) -> Result<(), BitsError>
Writes a single
i16 in big-endian order, 2 bytes, MSB first.Source§fn write_le_i16(&mut self, val: i16) -> Result<(), BitsError>
fn write_le_i16(&mut self, val: i16) -> Result<(), BitsError>
Writes a single
i16 in little-endian order, 2 bytes, LSB first.Source§fn write_be_i32(&mut self, val: i32) -> Result<(), BitsError>
fn write_be_i32(&mut self, val: i32) -> Result<(), BitsError>
Writes a single
i32 in big-endian order, 4 bytes, MSB first.Source§fn write_le_i32(&mut self, val: i32) -> Result<(), BitsError>
fn write_le_i32(&mut self, val: i32) -> Result<(), BitsError>
Writes a single
i32 in little-endian order, 4 bytes, LSB first.Source§fn write_be_i64(&mut self, val: i64) -> Result<(), BitsError>
fn write_be_i64(&mut self, val: i64) -> Result<(), BitsError>
Writes a single
i64 in big-endian order, 8 bytes, MSB first.Source§fn write_le_i64(&mut self, val: i64) -> Result<(), BitsError>
fn write_le_i64(&mut self, val: i64) -> Result<(), BitsError>
Writes a single
i64 in little-endian order, 8 bytes, LSB first.Source§fn write_be_i128(&mut self, val: i128) -> Result<(), BitsError>
fn write_be_i128(&mut self, val: i128) -> Result<(), BitsError>
Writes a single
i128 in big-endian order, 16 bytes, MSB first.Source§fn write_le_i128(&mut self, val: i128) -> Result<(), BitsError>
fn write_le_i128(&mut self, val: i128) -> Result<(), BitsError>
Writes a single
i128 in little-endian order, 16 bytes, LSB first.Source§fn write_u8_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_u8_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u8 declaring the sizeSource§fn write_be_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_be_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u16 declaring the sizeSource§fn write_le_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_le_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u16 declaring the sizeSource§fn write_be_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_be_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u32 declaring the sizeSource§fn write_le_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_le_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u32 declaring the sizeSource§fn write_be_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_be_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u64 declaring the sizeSource§fn write_le_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_le_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u64 declaring the sizeSource§fn write_all_bytes(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_all_bytes(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes all the bytes in order
Source§fn write_fmt_impl(&mut self, args: Arguments<'_>) -> Result<(), BitsError>
fn write_fmt_impl(&mut self, args: Arguments<'_>) -> Result<(), BitsError>
Allows the use of
core::format_args macroSource§fn write_some_bytes(&mut self, val: &[u8]) -> usize
fn write_some_bytes(&mut self, val: &[u8]) -> usize
Writes some subset of bytes until either the input is exhausted, or the
underlying buffer fills up or errors. Returns the total number of bytes
written
Source§fn write_str_u32_blob(&mut self, val: &str) -> Result<usize, BitsError>
fn write_str_u32_blob(&mut self, val: &str) -> Result<usize, BitsError>
Writes a specific sized string from the stream, a string prefixed by a
4-byte big-endian length.
Source§fn write_exact(&mut self, val: &[u8], len: usize) -> Result<(), BitsError>
fn write_exact(&mut self, val: &[u8], len: usize) -> Result<(), BitsError>
Writes the exact amount of bytes from the input buffer to the output stream
Returns an error if the buffer doesn’t have enough values or if the
output stream errors.
Auto Trait Implementations§
impl<T> Freeze for UnlimitedBuffer<T>
impl<T> RefUnwindSafe for UnlimitedBuffer<T>where
T: RefUnwindSafe,
impl<T> Send for UnlimitedBuffer<T>where
T: Send,
impl<T> Sync for UnlimitedBuffer<T>where
T: Sync,
impl<T> Unpin for UnlimitedBuffer<T>
impl<T> UnwindSafe for UnlimitedBuffer<T>where
T: RefUnwindSafe + UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DecodeVByte for Twhere
T: Bits,
impl<T> DecodeVByte for Twhere
T: Bits,
Source§impl<T> DecodeVarint for Twhere
T: Bits,
impl<T> DecodeVarint for Twhere
T: Bits,
Source§impl<I> IntoIterator for Iwhere
I: Iterator,
impl<I> IntoIterator for Iwhere
I: Iterator,
Source§impl<T> Itertools for T
impl<T> Itertools for T
Source§fn looping_forever(self) -> LoopingForever<Self::Item> ⓘ
fn looping_forever(self) -> LoopingForever<Self::Item> ⓘ
Returns an iterator that never ends, sequentially looping over all items in this
iterator forever, unless there are no items in the iterator.
Source§fn collect_exact(self, count: usize) -> Vec<Option<Self::Item>>
fn collect_exact(self, count: usize) -> Vec<Option<Self::Item>>
Collects a specific amount of items from the iterator. The underlying iterator may return
more, or less items than the specified count. Any remaining uncollected items will be
discarded. If count is greater than the length of the underlying iterator, then the
remainder of the returned vector will be None.
Source§fn collect_exact_or(self, count: usize, def: Self::Item) -> Vec<Self::Item>
fn collect_exact_or(self, count: usize, def: Self::Item) -> Vec<Self::Item>
Same behavior as
Itertools::collect_exact, except rather than returning ‘None’ after the end, it
returns the specified valueSource§fn collect_exact_or_default(self, count: usize) -> Vec<Self::Item>
fn collect_exact_or_default(self, count: usize) -> Vec<Self::Item>
Same behavior as
Itertools::collect_exact, except rather than returning ‘None’ after the end, it
returns the default valueSource§fn collect_next_chunk(&mut self, count: usize) -> Vec<Self::Item>
fn collect_next_chunk(&mut self, count: usize) -> Vec<Self::Item>
Collects and returns upto ‘count’ items from this iterator. If this
iterator is exhausted, the returned vector is empty. Note, the returned
vector may have up to the requested number of items if the iterator
exhausts before filling the chunk.
Source§fn joining(self, delim: Self::Item) -> Joining<Self, Self::Item>
fn joining(self, delim: Self::Item) -> Joining<Self, Self::Item>
Returns the elements in this iterator interspersed with the joining delimiter.
For example, if this iterator contains
[A, B, C, D] and the delimiter is z, then the
final iteration sequence will be [A, z, B, z, C, z, D]Source§fn joining_multi(self, delim: &[Self::Item]) -> MultiJoining<Self, Self::Item>
fn joining_multi(self, delim: &[Self::Item]) -> MultiJoining<Self, Self::Item>
Returns the elements in this iterator interspersed with the elements in the joining delimeter.
For example, if this iterator contains
[A, B, C, D] and the delimiters are [1, 2], then
the final iteration sequence will be [A, 1, 2, B, 1, 2, C, 1, 2, D]