pub struct BitsArray<'a, const N: usize> { /* private fields */ }
Expand description
This struct wraps a provided borrowed static array in a MutBits impl. Operates like a slice, walking through the array filling it up.
Implementations§
Source§impl<'a, const N: usize> BitsArray<'a, N>
impl<'a, const N: usize> BitsArray<'a, N>
Trait Implementations§
Source§impl<const N: usize> Bits for BitsArray<'_, N>
impl<const N: usize> Bits for BitsArray<'_, N>
Source§fn read_bool(&mut self) -> Result<bool, Error>
fn read_bool(&mut self) -> Result<bool, Error>
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>, Error>
fn next_bool(&mut self) -> Result<Option<bool>, Error>
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, Error>
fn read_be_utf8_char(&mut self) -> Result<char, Error>
Reads 1, 2, 3, or 4 bytes to construct a UTF-8 charpoint.
Source§fn read_be_u16(&mut self) -> Result<u16, Error>
fn read_be_u16(&mut self) -> Result<u16, Error>
Reads a single
u16
in big-endian order, 2 bytes, MSB first.Source§fn read_le_u16(&mut self) -> Result<u16, Error>
fn read_le_u16(&mut self) -> Result<u16, Error>
Reads a single
u16
in little-endian order, 2 bytes, LSB first.Source§fn next_be_u16(&mut self) -> Result<Option<u16>, Error>
fn next_be_u16(&mut self) -> Result<Option<u16>, Error>
Optionally reads a single
u16
in big-endian order, 2 bytes, MSB first.Source§fn next_le_u16(&mut self) -> Result<Option<u16>, Error>
fn next_le_u16(&mut self) -> Result<Option<u16>, Error>
Optionally reads a single
u16
in little-endian order, 2 bytes, LSB first.Source§fn read_be_u32(&mut self) -> Result<u32, Error>
fn read_be_u32(&mut self) -> Result<u32, Error>
Reads a single
u32
in big-endian order, 4 bytes, MSB first.Source§fn read_le_u32(&mut self) -> Result<u32, Error>
fn read_le_u32(&mut self) -> Result<u32, Error>
Reads a single
u32
in little-endian order, 4 bytes, LSB first.Source§fn next_be_u32(&mut self) -> Result<Option<u32>, Error>
fn next_be_u32(&mut self) -> Result<Option<u32>, Error>
Optionally reads a single
u32
in big-endian order, 4 bytes, MSB first.Source§fn next_le_u32(&mut self) -> Result<Option<u32>, Error>
fn next_le_u32(&mut self) -> Result<Option<u32>, Error>
Optionally reads a single
u32
in little-endian order, 4 bytes, LSB first.Source§fn read_be_u64(&mut self) -> Result<u64, Error>
fn read_be_u64(&mut self) -> Result<u64, Error>
Reads a single
u64
in big-endian order, 8 bytes, MSB first.Source§fn read_le_u64(&mut self) -> Result<u64, Error>
fn read_le_u64(&mut self) -> Result<u64, Error>
Reads a single
u64
in big-endian order, 8 bytes, MSB first.Source§fn next_be_u64(&mut self) -> Result<Option<u64>, Error>
fn next_be_u64(&mut self) -> Result<Option<u64>, Error>
Optionally reads a single
u64
in big-endian order, 8 bytes, MSB first.Source§fn next_le_u64(&mut self) -> Result<Option<u64>, Error>
fn next_le_u64(&mut self) -> Result<Option<u64>, Error>
Optionally reads a single
u64
in little-endian order, 4 bytes, LSB first.Source§fn read_be_u128(&mut self) -> Result<u128, Error>
fn read_be_u128(&mut self) -> Result<u128, Error>
Reads a single
u128
in big-endian order, 16 bytes, MSB first.Source§fn next_be_u128(&mut self) -> Result<Option<u128>, Error>
fn next_be_u128(&mut self) -> Result<Option<u128>, Error>
Optionally reads a single
u128
in big-endian order, 16 bytes, MSB first.Source§fn read_be_i128(&mut self) -> Result<i128, Error>
fn read_be_i128(&mut self) -> Result<i128, Error>
Reads a single
i128
in big-endian order, 16 bytes, MSB first.Source§fn next_be_i128(&mut self) -> Result<Option<i128>, Error>
fn next_be_i128(&mut self) -> Result<Option<i128>, Error>
Optionally reads a single
i128
in big-endian order, 16 bytes, MSB first.Source§fn read_be_f32(&mut self) -> Result<f32, Error>
fn read_be_f32(&mut self) -> Result<f32, Error>
Reads a single
f32
, 4 bytes. Standard IEEE754 encodingSource§fn read_le_f32(&mut self) -> Result<f32, Error>
fn read_le_f32(&mut self) -> Result<f32, Error>
Reads a single
f32
, 4 bytes. Reversed IEEE754 encodingSource§fn read_f32(&mut self, order: ByteOrder) -> Result<f32, Error>
fn read_f32(&mut self, order: ByteOrder) -> Result<f32, Error>
Reads a single
f32
, 4 bytes. Specified byte ordering.Source§fn next_be_f32(&mut self) -> Result<Option<f32>, Error>
fn next_be_f32(&mut self) -> Result<Option<f32>, Error>
Optionally reads a single
f32
, 4 bytes. Standard IEEE754 encodingSource§fn next_le_f32(&mut self) -> Result<Option<f32>, Error>
fn next_le_f32(&mut self) -> Result<Option<f32>, Error>
Optionally reads a single
f32
, 4 bytes. Reversed IEEE754 encodingSource§fn read_be_f64(&mut self) -> Result<f64, Error>
fn read_be_f64(&mut self) -> Result<f64, Error>
Reads a single
f64
, 8 bytes. Standard IEEE754 encodingSource§fn read_le_f64(&mut self) -> Result<f64, Error>
fn read_le_f64(&mut self) -> Result<f64, Error>
Reads a single
f64
, 8 bytes. Reversed IEEE754 encodingSource§fn next_be_f64(&mut self) -> Result<Option<f64>, Error>
fn next_be_f64(&mut self) -> Result<Option<f64>, Error>
Optionally reads a single
f64
, 8 bytes. Standard IEEE754 encodingSource§fn next_le_f64(&mut self) -> Result<Option<f64>, Error>
fn next_le_f64(&mut self) -> Result<Option<f64>, Error>
Optionally reads a single
f64
, 8 bytes. Reversed IEEE754 encodingSource§fn read_f64(&mut self, order: ByteOrder) -> Result<f64, Error>
fn read_f64(&mut self, order: ByteOrder) -> Result<f64, Error>
Reads a single
f64
, 8 bytes. Specified byte ordering.Source§fn read_be_i16(&mut self) -> Result<i16, Error>
fn read_be_i16(&mut self) -> Result<i16, Error>
Reads a single
i16
in big-endian order, 2 bytes, MSB first.Source§fn read_le_i16(&mut self) -> Result<i16, Error>
fn read_le_i16(&mut self) -> Result<i16, Error>
Reads a single
i16
in little-endian order, 2 bytes, LSB first.Source§fn next_be_i16(&mut self) -> Result<Option<i16>, Error>
fn next_be_i16(&mut self) -> Result<Option<i16>, Error>
Optionally reads a single
i16
in big-endian order, 2 bytes, MSB first.Source§fn next_le_i16(&mut self) -> Result<Option<i16>, Error>
fn next_le_i16(&mut self) -> Result<Option<i16>, Error>
Optionally reads a single
i16
in little-endian order, 2 bytes, LSB first.Source§fn read_be_i32(&mut self) -> Result<i32, Error>
fn read_be_i32(&mut self) -> Result<i32, Error>
Reads a single
i32
in big-endian order, 4 bytes, MSB first.Source§fn read_le_i32(&mut self) -> Result<i32, Error>
fn read_le_i32(&mut self) -> Result<i32, Error>
Reads a single
i32
in little-endian order, 4 bytes, LSB first.Source§fn next_be_i32(&mut self) -> Result<Option<i32>, Error>
fn next_be_i32(&mut self) -> Result<Option<i32>, Error>
Optionally reads a single
i32
in big-endian order, 4 bytes, MSB first.Source§fn next_le_i32(&mut self) -> Result<Option<i32>, Error>
fn next_le_i32(&mut self) -> Result<Option<i32>, Error>
Optionally reads a single
i32
in little-endian order, 4 bytes,LSB first.Source§fn read_be_i64(&mut self) -> Result<i64, Error>
fn read_be_i64(&mut self) -> Result<i64, Error>
Reads a single
i64
in big-endian order, 8 bytes, MSB first.Source§fn read_le_i64(&mut self) -> Result<i64, Error>
fn read_le_i64(&mut self) -> Result<i64, Error>
Reads a single
i64
in little-endian order, 8 bytes, LSB first.Source§fn next_be_i64(&mut self) -> Result<Option<i64>, Error>
fn next_be_i64(&mut self) -> Result<Option<i64>, Error>
Optionally reads a single
i64
in big-endian order, 8 bytes, MSB first.Source§fn next_le_i64(&mut self) -> Result<Option<i64>, Error>
fn next_le_i64(&mut self) -> Result<Option<i64>, Error>
Optionally reads a single
i64
in little-endian order, 8 bytes, LSB first.Source§fn read_le_i128(&mut self) -> Result<i128, Error>
fn read_le_i128(&mut self) -> Result<i128, Error>
Reads a single
i128
in little-endian order, 8 bytes, LSB first.Source§fn next_le_i128(&mut self) -> Result<Option<i128>, Error>
fn next_le_i128(&mut self) -> Result<Option<i128>, Error>
Optionally reads a single
i64
in little-endian order, 8 bytes, LSB first.Source§fn read_le_u128(&mut self) -> Result<u128, Error>
fn read_le_u128(&mut self) -> Result<u128, Error>
Reads a single
u128
in little-endian order, 8 bytes, LSB first.Source§fn next_le_u128(&mut self) -> Result<Option<u128>, Error>
fn next_le_u128(&mut self) -> Result<Option<u128>, Error>
Optionally reads a single
i64
in little-endian order, 8 bytes, LSB first.Source§fn advance(&mut self, len: usize) -> Result<usize, Error>
fn advance(&mut self, len: usize) -> Result<usize, Error>
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: MutBits>(&mut self, into: &mut T) -> Result<(), Error>
fn read_u16_blob_into<T: MutBits>(&mut self, into: &mut T) -> Result<(), Error>
fn read_u32_blob_into<T: MutBits>(&mut self, into: &mut T) -> Result<(), Error>
fn read_u64_blob_into<T: MutBits>(&mut self, into: &mut T) -> Result<(), Error>
Source§fn read_u8_blob(&mut self) -> Result<Vec<u8>, Error>
fn read_u8_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_be_u16_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_le_u16_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_be_u32_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_le_u32_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_be_u64_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_le_u64_blob(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_exact_vec(&mut self, size: usize) -> Result<Vec<u8>, Error>
Available on crate feature
alloc
only.Reads the specified amount of bytes into a
Vec<u8>
and returns itSource§fn read_all_str_lossy(&mut self) -> Result<String, Error>
fn read_all_str_lossy(&mut self) -> Result<String, Error>
Available on 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, Error>
fn read_str_sized_lossy(&mut self, len: usize) -> Result<String, Error>
Available on crate feature
alloc
only.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>, Error>
fn read_all_vec(&mut self) -> Result<Vec<u8>, Error>
Available on 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>, Error>
fn read_until(&mut self, search: &[u8]) -> Result<Vec<u8>, Error>
Available on crate feature
alloc
only.Reads from the input stream until: Read more
Source§fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, Error>
fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, Error>
Available on 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>, Error>
fn read_line_str_lossy(&mut self) -> Result<Option<String>, Error>
Available on 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>, Error>
fn read_line_str(&mut self) -> Result<Option<String>, Error>
Available on crate feature
alloc
only.Reads until the next
\n
character, then calls String::from_utf8
Source§fn consume_until(&mut self, search: &[u8]) -> Result<(), Error>
fn consume_until(&mut self, search: &[u8]) -> Result<(), Error>
Available on crate feature
alloc
only.Consumes data from the input stream until: Read more
Source§fn read_str_u32_blob(&mut self) -> Result<String, Error>
fn read_str_u32_blob(&mut self) -> Result<String, Error>
Available on 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], Error>
fn read_exact<const N: usize>(&mut self) -> Result<[u8; N], Error>
Reads the specified amount of bytes into a stack-allocated array.
Source§fn read_exact_into<T: MutBits>(
&mut self,
size: usize,
into: &mut T,
) -> Result<(), Error>
fn read_exact_into<T: MutBits>( &mut self, size: usize, into: &mut T, ) -> Result<(), Error>
Reads the specified amount of bytes into the specified target.
Source§fn read_all_into<T: MutBits>(&mut self, into: &mut T) -> Result<(), Error>
fn read_all_into<T: MutBits>(&mut self, into: &mut T) -> Result<(), Error>
Reads to the end of the stream, and writes it into the specified target.
Source§fn read_some_into<T: MutBits>(&mut self, buf: &mut T) -> Result<usize, Error>
fn read_some_into<T: MutBits>(&mut self, buf: &mut T) -> Result<usize, Error>
Reads some subset of the data into the specified target.
Source§fn read_u16(&mut self, order: ByteOrder) -> Result<u16, Error>
fn read_u16(&mut self, order: ByteOrder) -> Result<u16, Error>
Reads a single
u16
in the specified order order, 2 bytes.Source§fn read_u32(&mut self, order: ByteOrder) -> Result<u32, Error>
fn read_u32(&mut self, order: ByteOrder) -> Result<u32, Error>
Reads a single
u32
in the specified order order, 4 bytes.Source§fn read_u64(&mut self, order: ByteOrder) -> Result<u64, Error>
fn read_u64(&mut self, order: ByteOrder) -> Result<u64, Error>
Reads a single
u64
in the specified order order, 8 bytes.Source§fn read_u128(&mut self, order: ByteOrder) -> Result<u128, Error>
fn read_u128(&mut self, order: ByteOrder) -> Result<u128, Error>
Reads a single
u128
in the specified order order, 16 bytes.Source§fn read_i16(&mut self, order: ByteOrder) -> Result<i16, Error>
fn read_i16(&mut self, order: ByteOrder) -> Result<i16, Error>
Reads a single
i16
in the specified order order, 2 bytes.Source§fn read_i32(&mut self, order: ByteOrder) -> Result<i32, Error>
fn read_i32(&mut self, order: ByteOrder) -> Result<i32, Error>
Reads a single
i32
in the specified order order, 4 bytes.Auto Trait Implementations§
impl<'a, const N: usize> Freeze for BitsArray<'a, N>
impl<'a, const N: usize> RefUnwindSafe for BitsArray<'a, N>
impl<'a, const N: usize> Send for BitsArray<'a, N>
impl<'a, const N: usize> Sync for BitsArray<'a, N>
impl<'a, const N: usize> Unpin for BitsArray<'a, N>
impl<'a, const N: usize> UnwindSafe for BitsArray<'a, N>
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