pub trait Bits {
Show 61 methods
// Required method
fn next_u8(&mut self) -> Result<Option<u8>, Error>;
// Provided methods
fn read_u8(&mut self) -> Result<u8, Error> { ... }
fn read_i8(&mut self) -> Result<i8, Error> { ... }
fn next_i8(&mut self) -> Result<Option<i8>, Error> { ... }
fn read_bool(&mut self) -> Result<bool, Error> { ... }
fn next_bool(&mut self) -> Result<Option<bool>, Error> { ... }
fn read_be_utf8_char(&mut self) -> Result<char, Error> { ... }
fn read_be_u16(&mut self) -> Result<u16, Error> { ... }
fn read_le_u16(&mut self) -> Result<u16, Error> { ... }
fn next_be_u16(&mut self) -> Result<Option<u16>, Error> { ... }
fn next_le_u16(&mut self) -> Result<Option<u16>, Error> { ... }
fn read_be_u32(&mut self) -> Result<u32, Error> { ... }
fn read_le_u32(&mut self) -> Result<u32, Error> { ... }
fn next_be_u32(&mut self) -> Result<Option<u32>, Error> { ... }
fn next_le_u32(&mut self) -> Result<Option<u32>, Error> { ... }
fn read_be_u64(&mut self) -> Result<u64, Error> { ... }
fn read_le_u64(&mut self) -> Result<u64, Error> { ... }
fn next_be_u64(&mut self) -> Result<Option<u64>, Error> { ... }
fn next_le_u64(&mut self) -> Result<Option<u64>, Error> { ... }
fn read_be_u128(&mut self) -> Result<u128, Error> { ... }
fn next_be_u128(&mut self) -> Result<Option<u128>, Error> { ... }
fn read_be_i128(&mut self) -> Result<i128, Error> { ... }
fn next_be_i128(&mut self) -> Result<Option<i128>, Error> { ... }
fn read_f32(&mut self) -> Result<f32, Error> { ... }
fn next_f32(&mut self) -> Result<Option<f32>, Error> { ... }
fn read_f64(&mut self) -> Result<f64, Error> { ... }
fn next_f64(&mut self) -> Result<Option<f64>, Error> { ... }
fn read_be_i16(&mut self) -> Result<i16, Error> { ... }
fn read_le_i16(&mut self) -> Result<i16, Error> { ... }
fn next_be_i16(&mut self) -> Result<Option<i16>, Error> { ... }
fn next_le_i16(&mut self) -> Result<Option<i16>, Error> { ... }
fn read_be_i32(&mut self) -> Result<i32, Error> { ... }
fn read_le_i32(&mut self) -> Result<i32, Error> { ... }
fn next_be_i32(&mut self) -> Result<Option<i32>, Error> { ... }
fn next_le_i32(&mut self) -> Result<Option<i32>, Error> { ... }
fn read_be_i64(&mut self) -> Result<i64, Error> { ... }
fn read_le_i64(&mut self) -> Result<i64, Error> { ... }
fn next_be_i64(&mut self) -> Result<Option<i64>, Error> { ... }
fn next_le_i64(&mut self) -> Result<Option<i64>, Error> { ... }
fn advance(&mut self, len: usize) -> Result<usize, Error> { ... }
fn read_u8_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_be_u16_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_le_u16_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_be_u32_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_le_u32_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_be_u64_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_le_u64_blob(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_exact_vec(&mut self, size: usize) -> Result<Vec<u8>, Error> { ... }
fn read_all_str_lossy(&mut self) -> Result<String, Error> { ... }
fn read_str_sized_lossy(&mut self, len: usize) -> Result<String, Error> { ... }
fn read_all_vec(&mut self) -> Result<Vec<u8>, Error> { ... }
fn read_until(&mut self, search: &[u8]) -> Result<Vec<u8>, Error> { ... }
fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, Error> { ... }
fn read_line_str_lossy(&mut self) -> Result<Option<String>, Error> { ... }
fn read_line_str(&mut self) -> Result<Option<String>, Error> { ... }
fn consume_until(&mut self, search: &[u8]) -> Result<(), Error> { ... }
fn read_str_u32_blob(&mut self) -> Result<String, Error> { ... }
fn read_exact<const N: usize>(&mut self) -> Result<[u8; N], Error> { ... }
fn read_exact_into<T: MutBits>(
&mut self,
size: usize,
into: &mut T,
) -> Result<(), Error> { ... }
fn read_all_into<T: MutBits>(&mut self, into: &mut T) -> Result<(), Error> { ... }
fn read_some_into<T: MutBits>(
&mut self,
buf: &mut T,
) -> Result<usize, Error> { ... }
}Expand description
Read methods for the primitive types
Required Methods§
Provided Methods§
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn read_f32(&mut self) -> Result<f32, Error>
fn read_f32(&mut self) -> Result<f32, Error>
Reads a single f32, 4 bytes. Standard IEEE754 encoding
sourcefn next_f32(&mut self) -> Result<Option<f32>, Error>
fn next_f32(&mut self) -> Result<Option<f32>, Error>
Optionally reads a single f32, 4 bytes. Standard IEEE754 encoding
sourcefn read_f64(&mut self) -> Result<f64, Error>
fn read_f64(&mut self) -> Result<f64, Error>
Reads a single f64, 8 bytes. Standard IEEE754 encoding
sourcefn next_f64(&mut self) -> Result<Option<f64>, Error>
fn next_f64(&mut self) -> Result<Option<f64>, Error>
Optionally reads a single f64, 8 bytes. Standard IEEE754 encoding
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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)]
sourcefn read_u8_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_u8_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u8 declaring the size.
sourcefn read_be_u16_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_be_u16_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u16 declaring the size.
sourcefn read_le_u16_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_le_u16_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u16 declaring the size.
sourcefn read_be_u32_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_be_u32_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u32 declaring the size.
sourcefn read_le_u32_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_le_u32_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u32 declaring the size.
sourcefn read_be_u64_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_be_u64_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u64 declaring the size.
sourcefn read_le_u64_blob(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_le_u64_blob(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads a sized blob, a series of bytes preceded by a u64 declaring the size.
sourcefn read_exact_vec(&mut self, size: usize) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_exact_vec(&mut self, size: usize) -> Result<Vec<u8>, Error>
alloc only.Reads the specified amount of bytes into a Vec<u8> and returns it
sourcefn read_all_str_lossy(&mut self) -> Result<String, Error>
Available on crate feature alloc only.
fn read_all_str_lossy(&mut self) -> Result<String, Error>
alloc only.Reads the entire stream into a UTF-8 String, dropping all other bytes.
sourcefn read_str_sized_lossy(&mut self, len: usize) -> Result<String, Error>
Available on crate feature alloc only.
fn read_str_sized_lossy(&mut self, len: usize) -> Result<String, Error>
alloc only.Reads the specified amount of bytes into a UTF-8 String, dropping all other bytes.
sourcefn read_all_vec(&mut self) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_all_vec(&mut self) -> Result<Vec<u8>, Error>
alloc only.Reads to the end of the stream and returns the data as a Vec<u8>
sourcefn read_until(&mut self, search: &[u8]) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
fn read_until(&mut self, search: &[u8]) -> Result<Vec<u8>, Error>
alloc only.Reads from the input stream until:
- The byte stream represented by ‘search’ has been found or
- The input stream returns 0 bytes read (or errors out) It returns all bytes read in the interim
sourcefn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, Error>
Available on crate feature alloc only.
fn read_line_vec(&mut self) -> Result<Option<Vec<u8>>, Error>
alloc only.Reads until the next \n character, ignoring any \r characters along
the way.
sourcefn read_line_str_lossy(&mut self) -> Result<Option<String>, Error>
Available on crate feature alloc only.
fn read_line_str_lossy(&mut self) -> Result<Option<String>, Error>
alloc only.Reads until the next \n character, then calls String::from_utf8_lossy.
sourcefn read_line_str(&mut self) -> Result<Option<String>, Error>
Available on crate feature alloc only.
fn read_line_str(&mut self) -> Result<Option<String>, Error>
alloc only.Reads until the next \n character, then calls String::from_utf8
sourcefn consume_until(&mut self, search: &[u8]) -> Result<(), Error>
Available on crate feature alloc only.
fn consume_until(&mut self, search: &[u8]) -> Result<(), Error>
alloc only.Consumes data from the input stream until:
- The byte stream represented by ‘search’ has been found or
- The input reader returns 0 bytes read (or errors out)
Note: The input stream position is left JUST AFTER the found search string.
sourcefn read_str_u32_blob(&mut self) -> Result<String, Error>
Available on crate feature alloc only.
fn read_str_u32_blob(&mut self) -> Result<String, Error>
alloc only.Reads a specific sized string from the stream, a string prefixed by a 4-byte big-endian length.
sourcefn 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.
sourcefn 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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.