Skip to main content

RoundU8Buffer

Struct RoundU8Buffer 

Source
pub struct RoundU8Buffer<const N: usize> { /* private fields */ }
Expand description

Double-ended circular Buffer. Basically a fixed size std::collections::VecDeque

Implementations§

Source§

impl<const N: usize> RoundU8Buffer<N>

Source

pub fn pop_n_front<const L: usize>(&mut self) -> Option<[u8; L]>

Source

pub const fn available_capacity(&self) -> usize

Returns the free space (capacity) in this buffer.

Source

pub fn as_ref_mut<F: FnMut(usize, &mut [u8]) -> Result<usize, BitsError>>( &mut self, func: F, ) -> Result<(), BitsError>

Provides the function with a mutable ref to the inner buffer. The function MUST return the updated “used” size of the buffer.

Source

pub fn as_ref_used(&self) -> (&[u8], &[u8])

Source

pub fn as_ref_mut_available(&mut self) -> &mut [u8]

Source

pub fn append_all(&mut self, vals: &[u8]) -> Result<(), BitsError>

Appends all values into this buffer

Source

pub fn append_some(&mut self, vals: &[u8]) -> usize

Appends some of the data into this buffer. Returns the number of bytes successfully appended - which may be less than the total available.

Source

pub fn consume(&mut self, amt: usize)

Advances the head pointer the specified amount, up to the filled length of this buffer.

Source

pub fn mark_some_used(&mut self, used: usize) -> Result<(), BitsError>

Marks some of the internal buffer space as used by advancing the tail pointer by the specified amount

Source

pub fn limit(&mut self, limit: usize) -> Result<(), BitsError>

Limits the internal returned buffer to the specified amount by clipping the ‘used length’ parameter

Trait Implementations§

Source§

impl<const N: usize> Bits for &mut RoundU8Buffer<N>

Source§

fn next_u8(&mut self) -> Result<Option<u8>, Error>

Optionally returns a single u8
Source§

fn read_be_u32(&mut self) -> Result<u32, Error>

Reads a single u32 in big-endian order, 4 bytes, MSB first.
Source§

fn read_u8(&mut self) -> Result<u8, BitsError>

Reads a single u8
Source§

fn read_i8(&mut self) -> Result<i8, BitsError>

Reads a single i8
Source§

fn next_i8(&mut self) -> Result<Option<i8>, BitsError>

Optionally returns a single i8
Source§

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>

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>

Reads 1, 2, 3, or 4 bytes to construct a UTF-8 charpoint.
Source§

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>

Reads a single u16 in little-endian order, 2 bytes, LSB first.
Source§

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>

Optionally reads a single u16 in little-endian order, 2 bytes, LSB first.
Source§

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>

Optionally reads a single u32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Reads a single u64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Optionally reads a single u64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Reads a single u128 in big-endian order, 16 bytes, MSB first.
Source§

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>

Reads a single i128 in big-endian order, 16 bytes, MSB first.
Source§

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>

Reads a single f32, 4 bytes. Standard IEEE754 encoding
Source§

fn read_le_f32(&mut self) -> Result<f32, BitsError>

Reads a single f32, 4 bytes. Reversed IEEE754 encoding
Source§

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>

Optionally reads a single f32, 4 bytes. Standard IEEE754 encoding
Source§

fn next_le_f32(&mut self) -> Result<Option<f32>, BitsError>

Optionally reads a single f32, 4 bytes. Reversed IEEE754 encoding
Source§

fn read_be_f64(&mut self) -> Result<f64, BitsError>

Reads a single f64, 8 bytes. Standard IEEE754 encoding
Source§

fn read_le_f64(&mut self) -> Result<f64, BitsError>

Reads a single f64, 8 bytes. Reversed IEEE754 encoding
Source§

fn next_be_f64(&mut self) -> Result<Option<f64>, BitsError>

Optionally reads a single f64, 8 bytes. Standard IEEE754 encoding
Source§

fn next_le_f64(&mut self) -> Result<Option<f64>, BitsError>

Optionally reads a single f64, 8 bytes. Reversed IEEE754 encoding
Source§

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>

Reads a single i16 in big-endian order, 2 bytes, MSB first.
Source§

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>

Optionally reads a single i16 in big-endian order, 2 bytes, MSB first.
Source§

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>

Reads a single i32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Optionally reads a single i32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Reads a single i64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Optionally reads a single i64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Reads a single i128 in little-endian order, 8 bytes, LSB first.
Source§

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>

Reads a single u128 in little-endian order, 8 bytes, LSB first.
Source§

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>

Advances the stream by at most ‘len’ bytes. The actual amount of bytes advanced may be less, and is returned in [Ok(usize)]
Source§

fn read_u8_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_u16_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_u32_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_u64_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_str_nul_terminated_into<T>( &mut self, into: &mut T, ) -> Result<(), BitsError>
where T: MutBits,

reads from the stream until a null (0x0) is encountered into the provided output, does NOT include null.
Source§

fn read_u8_blob(&mut self) -> Result<Vec<u8>, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads the specified amount of bytes into a Vec<u8> and returns it
Source§

fn read_all_str_lossy(&mut self) -> Result<String, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads the specified amount of bytes into a UTF-8 String, dropping all other bytes.
Source§

fn read_str_null_terminated(&mut self) -> Result<String, BitsError>

Available on docsrs, or crate feature alloc only.
Reads a string from the stream, terminated by a null byte. Does NOT include the null byte.
Source§

fn read_all_vec(&mut self) -> Result<Vec<u8>, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads from the input stream until: Read more
Source§

fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads until the next \n character, then calls String::from_utf8_lossy.
Source§

fn read_line_str(&mut self) -> Result<Option<String>, BitsError>

Available on docsrs, or crate feature alloc only.
Reads until the next \n character, then calls String::from_utf8
Source§

fn consume_until(&mut self, search: &[u8]) -> Result<bool, BitsError>

Available on docsrs, or crate feature alloc only.
Consumes data from the input stream until: Read more
Source§

fn read_str_u32_blob(&mut self) -> Result<String, BitsError>

Available on docsrs, or crate feature alloc only.
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>

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,

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,

Reads to the end of the stream, and writes it into the specified target.
Source§

fn read_filling<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Fills the provided buffer
Source§

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>

Reads a single u16 in the specified order order, 2 bytes.
Source§

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>

Reads a single u64 in the specified order order, 8 bytes.
Source§

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>

Reads a single i16 in the specified order order, 2 bytes.
Source§

fn read_i32(&mut self, order: ByteOrder) -> Result<i32, BitsError>

Reads a single i32 in the specified order order, 4 bytes.
Source§

fn read_i64(&mut self, order: ByteOrder) -> Result<i64, BitsError>

Reads a single i64 in the specified order order, 4 bytes.
Source§

fn read_i128(&mut self, order: ByteOrder) -> Result<i128, BitsError>

Reads a single i128 in the specified order order, 16 bytes.
Source§

fn remaining(&self) -> Option<usize>

Some implementations may be able to return the size of the remaining data in the buffer.
Source§

impl<const N: usize> Bits for RoundU8Buffer<N>

Source§

fn next_u8(&mut self) -> Result<Option<u8>, Error>

Optionally returns a single u8
Source§

fn read_be_u32(&mut self) -> Result<u32, Error>

Reads a single u32 in big-endian order, 4 bytes, MSB first.
Source§

fn read_u8(&mut self) -> Result<u8, BitsError>

Reads a single u8
Source§

fn read_i8(&mut self) -> Result<i8, BitsError>

Reads a single i8
Source§

fn next_i8(&mut self) -> Result<Option<i8>, BitsError>

Optionally returns a single i8
Source§

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>

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>

Reads 1, 2, 3, or 4 bytes to construct a UTF-8 charpoint.
Source§

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>

Reads a single u16 in little-endian order, 2 bytes, LSB first.
Source§

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>

Optionally reads a single u16 in little-endian order, 2 bytes, LSB first.
Source§

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>

Optionally reads a single u32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Reads a single u64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Optionally reads a single u64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Reads a single u128 in big-endian order, 16 bytes, MSB first.
Source§

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>

Reads a single i128 in big-endian order, 16 bytes, MSB first.
Source§

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>

Reads a single f32, 4 bytes. Standard IEEE754 encoding
Source§

fn read_le_f32(&mut self) -> Result<f32, BitsError>

Reads a single f32, 4 bytes. Reversed IEEE754 encoding
Source§

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>

Optionally reads a single f32, 4 bytes. Standard IEEE754 encoding
Source§

fn next_le_f32(&mut self) -> Result<Option<f32>, BitsError>

Optionally reads a single f32, 4 bytes. Reversed IEEE754 encoding
Source§

fn read_be_f64(&mut self) -> Result<f64, BitsError>

Reads a single f64, 8 bytes. Standard IEEE754 encoding
Source§

fn read_le_f64(&mut self) -> Result<f64, BitsError>

Reads a single f64, 8 bytes. Reversed IEEE754 encoding
Source§

fn next_be_f64(&mut self) -> Result<Option<f64>, BitsError>

Optionally reads a single f64, 8 bytes. Standard IEEE754 encoding
Source§

fn next_le_f64(&mut self) -> Result<Option<f64>, BitsError>

Optionally reads a single f64, 8 bytes. Reversed IEEE754 encoding
Source§

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>

Reads a single i16 in big-endian order, 2 bytes, MSB first.
Source§

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>

Optionally reads a single i16 in big-endian order, 2 bytes, MSB first.
Source§

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>

Reads a single i32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Optionally reads a single i32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Reads a single i64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Optionally reads a single i64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Reads a single i128 in little-endian order, 8 bytes, LSB first.
Source§

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>

Reads a single u128 in little-endian order, 8 bytes, LSB first.
Source§

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>

Advances the stream by at most ‘len’ bytes. The actual amount of bytes advanced may be less, and is returned in [Ok(usize)]
Source§

fn read_u8_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_u16_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_u32_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_u64_blob_into<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Source§

fn read_str_nul_terminated_into<T>( &mut self, into: &mut T, ) -> Result<(), BitsError>
where T: MutBits,

reads from the stream until a null (0x0) is encountered into the provided output, does NOT include null.
Source§

fn read_u8_blob(&mut self) -> Result<Vec<u8>, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads the specified amount of bytes into a Vec<u8> and returns it
Source§

fn read_all_str_lossy(&mut self) -> Result<String, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads the specified amount of bytes into a UTF-8 String, dropping all other bytes.
Source§

fn read_str_null_terminated(&mut self) -> Result<String, BitsError>

Available on docsrs, or crate feature alloc only.
Reads a string from the stream, terminated by a null byte. Does NOT include the null byte.
Source§

fn read_all_vec(&mut self) -> Result<Vec<u8>, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads from the input stream until: Read more
Source§

fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, BitsError>

Available on docsrs, or crate feature alloc only.
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>

Available on docsrs, or crate feature alloc only.
Reads until the next \n character, then calls String::from_utf8_lossy.
Source§

fn read_line_str(&mut self) -> Result<Option<String>, BitsError>

Available on docsrs, or crate feature alloc only.
Reads until the next \n character, then calls String::from_utf8
Source§

fn consume_until(&mut self, search: &[u8]) -> Result<bool, BitsError>

Available on docsrs, or crate feature alloc only.
Consumes data from the input stream until: Read more
Source§

fn read_str_u32_blob(&mut self) -> Result<String, BitsError>

Available on docsrs, or crate feature alloc only.
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>

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,

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,

Reads to the end of the stream, and writes it into the specified target.
Source§

fn read_filling<T>(&mut self, into: &mut T) -> Result<(), BitsError>
where T: MutBits,

Fills the provided buffer
Source§

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>

Reads a single u16 in the specified order order, 2 bytes.
Source§

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>

Reads a single u64 in the specified order order, 8 bytes.
Source§

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>

Reads a single i16 in the specified order order, 2 bytes.
Source§

fn read_i32(&mut self, order: ByteOrder) -> Result<i32, BitsError>

Reads a single i32 in the specified order order, 4 bytes.
Source§

fn read_i64(&mut self, order: ByteOrder) -> Result<i64, BitsError>

Reads a single i64 in the specified order order, 4 bytes.
Source§

fn read_i128(&mut self, order: ByteOrder) -> Result<i128, BitsError>

Reads a single i128 in the specified order order, 16 bytes.
Source§

fn remaining(&self) -> Option<usize>

Some implementations may be able to return the size of the remaining data in the buffer.
Source§

impl<const N: usize> Buffer<u8> for RoundU8Buffer<N>

Source§

fn get(&self, index: usize) -> Option<&u8>

Source§

fn get_mut(&mut self, index: usize) -> Option<&mut u8>

Source§

fn capacity(&self) -> usize

Source§

fn len(&self) -> usize

Source§

fn clear(&mut self)

Source§

fn front(&self) -> Option<&u8>

Source§

fn front_mut(&mut self) -> Option<&mut u8>

Source§

fn back(&self) -> Option<&u8>

Source§

fn back_mut(&mut self) -> Option<&mut u8>

Source§

fn pop_front(&mut self) -> Option<u8>

Source§

fn pop_back(&mut self) -> Option<u8>

Source§

fn push_front(&mut self, value: u8) -> Result<(), u8>

Source§

fn push_back(&mut self, value: u8) -> Result<(), u8>

Source§

fn push(&mut self, value: T) -> Result<(), T>

Source§

fn is_empty(&self) -> bool

Source§

fn is_full(&self) -> bool

Source§

fn into_boxed_slice(self) -> Box<[T]>
where Self: Sized,

Available on crate feature alloc only.
Source§

impl<const N: usize> Default for RoundU8Buffer<N>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<const N: usize> From<[u8; N]> for RoundU8Buffer<N>

Source§

fn from(value: [u8; N]) -> Self

Converts to this type from the input type.
Source§

impl<const N: usize> Index<usize> for RoundU8Buffer<N>

Source§

type Output = u8

The returned type after indexing.
Source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl<const N: usize> IntoIterator for RoundU8Buffer<N>

Source§

type Item = u8

The type of the elements being iterated over.
Source§

type IntoIter = RoundU8BufferIter<N>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<const N: usize> MutBits for &mut RoundU8Buffer<N>

Source§

fn write_u8(&mut self, val: u8) -> Result<(), Error>

Writes a single u8
Source§

fn write_i8(&mut self, val: i8) -> Result<(), BitsError>

Writes a single i8
Source§

fn write_bool(&mut self, val: bool) -> Result<(), BitsError>

Writes 1u8 if true, 0u8 if false
Source§

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>

Writes a single u16 in big-endian order, 2 bytes, MSB first.
Source§

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>

Writes a single u32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Writes a single u64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Writes a single u128 in big-endian order, 16 bytes, MSB first.
Source§

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>

Writes a single f32 in standard IEEE754 format, 4 bytes
Source§

fn write_le_f32(&mut self, val: f32) -> Result<(), BitsError>

Writes a single f32 in reversed IEEE754 format, 4 bytes
Source§

fn write_be_f64(&mut self, val: f64) -> Result<(), BitsError>

Writes a single u16 in standard IEEE754 format, 8 bytes
Source§

fn write_le_f64(&mut self, val: f64) -> Result<(), BitsError>

Writes a single u16 in reversed IEEE754 format, 8 bytes
Source§

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>

Writes a single i16 in little-endian order, 2 bytes, LSB first.
Source§

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>

Writes a single i32 in little-endian order, 4 bytes, LSB first.
Source§

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>

Writes a single i64 in little-endian order, 8 bytes, LSB first.
Source§

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>

Writes a single i128 in little-endian order, 16 bytes, LSB first.
Source§

fn write_u8_blob(&mut self, val: &[u8]) -> Result<(), BitsError>

Writes a sized blob, a series of bytes preceded by a u8 declaring the size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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>

Available on docsrs, or crate feature alloc only.
Allows the use of core::format_args macro
Source§

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>

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>

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.
Source§

fn write_all_into_self_from<T>( &mut self, other: &mut T, ) -> Result<u64, BitsError>
where T: Bits,

Copies all data from the other stream into this stream.
Source§

fn flush(&mut self) -> Result<(), BitsError>

Flush all bytes out of the cache. Most impl’s won’t need this.
Source§

impl<const N: usize> MutBits for RoundU8Buffer<N>

Source§

fn write_u8(&mut self, val: u8) -> Result<(), Error>

Writes a single u8
Source§

fn write_i8(&mut self, val: i8) -> Result<(), BitsError>

Writes a single i8
Source§

fn write_bool(&mut self, val: bool) -> Result<(), BitsError>

Writes 1u8 if true, 0u8 if false
Source§

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>

Writes a single u16 in big-endian order, 2 bytes, MSB first.
Source§

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>

Writes a single u32 in big-endian order, 4 bytes, MSB first.
Source§

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>

Writes a single u64 in big-endian order, 8 bytes, MSB first.
Source§

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>

Writes a single u128 in big-endian order, 16 bytes, MSB first.
Source§

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>

Writes a single f32 in standard IEEE754 format, 4 bytes
Source§

fn write_le_f32(&mut self, val: f32) -> Result<(), BitsError>

Writes a single f32 in reversed IEEE754 format, 4 bytes
Source§

fn write_be_f64(&mut self, val: f64) -> Result<(), BitsError>

Writes a single u16 in standard IEEE754 format, 8 bytes
Source§

fn write_le_f64(&mut self, val: f64) -> Result<(), BitsError>

Writes a single u16 in reversed IEEE754 format, 8 bytes
Source§

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>

Writes a single i16 in little-endian order, 2 bytes, LSB first.
Source§

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>

Writes a single i32 in little-endian order, 4 bytes, LSB first.
Source§

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>

Writes a single i64 in little-endian order, 8 bytes, LSB first.
Source§

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>

Writes a single i128 in little-endian order, 16 bytes, LSB first.
Source§

fn write_u8_blob(&mut self, val: &[u8]) -> Result<(), BitsError>

Writes a sized blob, a series of bytes preceded by a u8 declaring the size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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 size
Source§

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>

Available on docsrs, or crate feature alloc only.
Allows the use of core::format_args macro
Source§

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>

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>

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.
Source§

fn write_all_into_self_from<T>( &mut self, other: &mut T, ) -> Result<u64, BitsError>
where T: Bits,

Copies all data from the other stream into this stream.
Source§

fn flush(&mut self) -> Result<(), BitsError>

Flush all bytes out of the cache. Most impl’s won’t need this.

Auto Trait Implementations§

§

impl<const N: usize> Freeze for RoundU8Buffer<N>

§

impl<const N: usize> RefUnwindSafe for RoundU8Buffer<N>

§

impl<const N: usize> Send for RoundU8Buffer<N>

§

impl<const N: usize> Sync for RoundU8Buffer<N>

§

impl<const N: usize> Unpin for RoundU8Buffer<N>

§

impl<const N: usize> UnwindSafe for RoundU8Buffer<N>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> BChunks for T
where T: Bits,

Source§

fn chunks<const N: usize>(&mut self) -> BitsChunks<'_, N, T>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> DecodeVByte for T
where T: Bits,

Source§

impl<T> DecodeVarint for T
where T: Bits,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> HexDump for S
where S: Bits,

Source§

fn hexdump(&mut self)

Available on crate feature std only.
Hexdump this data structure to stdout
Source§

fn hexdump_to<T>(&mut self, out: &mut T) -> Result<(), BitsError>
where T: MutBits + ?Sized,

Hexdump to the specified writer.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> MaybeInto<U> for T
where U: MaybeFrom<T>,

Source§

fn maybe_into(self) -> Option<U>

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UUIDReader for T
where T: Bits,

Source§

fn read_uuid(&mut self) -> Result<UUID, BitsError>

Attempts to read a UUID from this data source, returning the UUID read, or an error if it could not.
Source§

impl<T> UUIDWriter for T
where T: MutBits,

Source§

fn write_uuid(&mut self, uuid: &UUID) -> Result<(), BitsError>

Attempts to write a UUID to this data source