pub struct ZigZagReader<R, P = NonStrict> { /* private fields */ }Expand description
Reader wrapper for ZigZag + unsigned LEB128 integers.
§Target-width integers
isize methods use the current Rust target’s pointer width. Prefer
fixed-width integer methods such as read_i64 for persistent files and
cross-platform protocols.
Implementations§
Source§impl<R, P> ZigZagReader<R, P>where
P: DecodePolicy,
impl<R, P> ZigZagReader<R, P>where
P: DecodePolicy,
Sourcepub const fn is_strict(&self) -> bool
pub const fn is_strict(&self) -> bool
Returns whether this reader rejects non-canonical LEB128 encodings.
Sourcepub fn into_inner(self) -> R
pub fn into_inner(self) -> R
Consumes this wrapper and returns the underlying reader.
Source§impl<R> ZigZagReader<R, NonStrict>where
R: Read,
impl<R> ZigZagReader<R, NonStrict>where
R: Read,
Sourcepub fn read_isize(&mut self) -> Result<isize>
pub fn read_isize(&mut self) -> Result<isize>
Reads a ZigZag isize.
Source§impl<R> ZigZagReader<R, Strict>where
R: Read,
impl<R> ZigZagReader<R, Strict>where
R: Read,
Sourcepub fn read_isize(&mut self) -> Result<isize>
pub fn read_isize(&mut self) -> Result<isize>
Reads a ZigZag isize.
Trait Implementations§
Source§impl<R, P> Read for ZigZagReader<R, P>where
R: Read,
impl<R, P> Read for ZigZagReader<R, P>where
R: Read,
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Reads the exact number of bytes required to fill
cursor. Read more1.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
Read. Read more1.0.0 · Source§fn chain<R>(self, next: R) -> Chain<Self, R>
fn chain<R>(self, next: R) -> Chain<Self, R>
Creates an adapter which will chain this stream with another. Read more
Source§impl<R, P> Seek for ZigZagReader<R, P>where
R: Seek,
impl<R, P> Seek for ZigZagReader<R, P>where
R: Seek,
1.55.0 · Source§fn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Rewind to the beginning of a stream. Read more
Source§fn stream_len(&mut self) -> Result<u64, Error>
fn stream_len(&mut self) -> Result<u64, Error>
🔬This is a nightly-only experimental API. (
seek_stream_len)Returns the length of this stream (in bytes). Read more
Auto Trait Implementations§
impl<R, P> Freeze for ZigZagReader<R, P>where
R: Freeze,
impl<R, P> RefUnwindSafe for ZigZagReader<R, P>where
R: RefUnwindSafe,
impl<R, P> Send for ZigZagReader<R, P>where
R: Send,
impl<R, P> Sync for ZigZagReader<R, P>where
R: Sync,
impl<R, P> Unpin for ZigZagReader<R, P>where
R: Unpin,
impl<R, P> UnsafeUnpin for ZigZagReader<R, P>where
R: UnsafeUnpin,
impl<R, P> UnwindSafe for ZigZagReader<R, P>where
R: UnwindSafe,
Blanket Implementations§
Source§impl<R> BinaryReadExt for R
impl<R> BinaryReadExt for R
Source§fn read_u16(&mut self, byte_order: ByteOrder) -> Result<u16>
fn read_u16(&mut self, byte_order: ByteOrder) -> Result<u16>
Reads an unsigned 16-bit integer using a runtime byte order.
Source§fn read_u16_be(&mut self) -> Result<u16>
fn read_u16_be(&mut self) -> Result<u16>
Reads a big-endian unsigned 16-bit integer.
Source§fn read_u16_le(&mut self) -> Result<u16>
fn read_u16_le(&mut self) -> Result<u16>
Reads a little-endian unsigned 16-bit integer.
Source§fn read_u32(&mut self, byte_order: ByteOrder) -> Result<u32>
fn read_u32(&mut self, byte_order: ByteOrder) -> Result<u32>
Reads an unsigned 32-bit integer using a runtime byte order.
Source§fn read_u32_be(&mut self) -> Result<u32>
fn read_u32_be(&mut self) -> Result<u32>
Reads a big-endian unsigned 32-bit integer.
Source§fn read_u32_le(&mut self) -> Result<u32>
fn read_u32_le(&mut self) -> Result<u32>
Reads a little-endian unsigned 32-bit integer.
Source§fn read_u64(&mut self, byte_order: ByteOrder) -> Result<u64>
fn read_u64(&mut self, byte_order: ByteOrder) -> Result<u64>
Reads an unsigned 64-bit integer using a runtime byte order.
Source§fn read_u64_be(&mut self) -> Result<u64>
fn read_u64_be(&mut self) -> Result<u64>
Reads a big-endian unsigned 64-bit integer.
Source§fn read_u64_le(&mut self) -> Result<u64>
fn read_u64_le(&mut self) -> Result<u64>
Reads a little-endian unsigned 64-bit integer.
Source§fn read_u128(&mut self, byte_order: ByteOrder) -> Result<u128>
fn read_u128(&mut self, byte_order: ByteOrder) -> Result<u128>
Reads an unsigned 128-bit integer using a runtime byte order.
Source§fn read_u128_be(&mut self) -> Result<u128>
fn read_u128_be(&mut self) -> Result<u128>
Reads a big-endian unsigned 128-bit integer.
Source§fn read_u128_le(&mut self) -> Result<u128>
fn read_u128_le(&mut self) -> Result<u128>
Reads a little-endian unsigned 128-bit integer.
Source§fn read_i16(&mut self, byte_order: ByteOrder) -> Result<i16>
fn read_i16(&mut self, byte_order: ByteOrder) -> Result<i16>
Reads a signed 16-bit integer using a runtime byte order.
Source§fn read_i16_be(&mut self) -> Result<i16>
fn read_i16_be(&mut self) -> Result<i16>
Reads a big-endian signed 16-bit integer.
Source§fn read_i16_le(&mut self) -> Result<i16>
fn read_i16_le(&mut self) -> Result<i16>
Reads a little-endian signed 16-bit integer.
Source§fn read_i32(&mut self, byte_order: ByteOrder) -> Result<i32>
fn read_i32(&mut self, byte_order: ByteOrder) -> Result<i32>
Reads a signed 32-bit integer using a runtime byte order.
Source§fn read_i32_be(&mut self) -> Result<i32>
fn read_i32_be(&mut self) -> Result<i32>
Reads a big-endian signed 32-bit integer.
Source§fn read_i32_le(&mut self) -> Result<i32>
fn read_i32_le(&mut self) -> Result<i32>
Reads a little-endian signed 32-bit integer.
Source§fn read_i64(&mut self, byte_order: ByteOrder) -> Result<i64>
fn read_i64(&mut self, byte_order: ByteOrder) -> Result<i64>
Reads a signed 64-bit integer using a runtime byte order.
Source§fn read_i64_be(&mut self) -> Result<i64>
fn read_i64_be(&mut self) -> Result<i64>
Reads a big-endian signed 64-bit integer.
Source§fn read_i64_le(&mut self) -> Result<i64>
fn read_i64_le(&mut self) -> Result<i64>
Reads a little-endian signed 64-bit integer.
Source§fn read_i128(&mut self, byte_order: ByteOrder) -> Result<i128>
fn read_i128(&mut self, byte_order: ByteOrder) -> Result<i128>
Reads a signed 128-bit integer using a runtime byte order.
Source§fn read_i128_be(&mut self) -> Result<i128>
fn read_i128_be(&mut self) -> Result<i128>
Reads a big-endian signed 128-bit integer.
Source§fn read_i128_le(&mut self) -> Result<i128>
fn read_i128_le(&mut self) -> Result<i128>
Reads a little-endian signed 128-bit integer.
Source§fn read_f32(&mut self, byte_order: ByteOrder) -> Result<f32>
fn read_f32(&mut self, byte_order: ByteOrder) -> Result<f32>
Reads a 32-bit float using a runtime byte order.
Source§fn read_f32_be(&mut self) -> Result<f32>
fn read_f32_be(&mut self) -> Result<f32>
Reads a big-endian 32-bit float.
Source§fn read_f32_le(&mut self) -> Result<f32>
fn read_f32_le(&mut self) -> Result<f32>
Reads a little-endian 32-bit float.
Source§fn read_f64(&mut self, byte_order: ByteOrder) -> Result<f64>
fn read_f64(&mut self, byte_order: ByteOrder) -> Result<f64>
Reads a 64-bit float using a runtime byte order.
Source§fn read_f64_be(&mut self) -> Result<f64>
fn read_f64_be(&mut self) -> Result<f64>
Reads a big-endian 64-bit float.
Source§fn read_f64_le(&mut self) -> Result<f64>
fn read_f64_le(&mut self) -> Result<f64>
Reads a little-endian 64-bit float.
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<R> Leb128ReadExt for R
impl<R> Leb128ReadExt for R
Source§fn read_uleb_u8(&mut self) -> Result<u8>
fn read_uleb_u8(&mut self) -> Result<u8>
Reads a non-strict unsigned LEB128
u8.Source§fn read_uleb_u8_strict(&mut self) -> Result<u8>
fn read_uleb_u8_strict(&mut self) -> Result<u8>
Reads a strict unsigned LEB128
u8.Source§fn read_uleb_u16(&mut self) -> Result<u16>
fn read_uleb_u16(&mut self) -> Result<u16>
Reads a non-strict unsigned LEB128
u16.Source§fn read_uleb_u16_strict(&mut self) -> Result<u16>
fn read_uleb_u16_strict(&mut self) -> Result<u16>
Reads a strict unsigned LEB128
u16.Source§fn read_uleb_u32(&mut self) -> Result<u32>
fn read_uleb_u32(&mut self) -> Result<u32>
Reads a non-strict unsigned LEB128
u32.Source§fn read_uleb_u32_strict(&mut self) -> Result<u32>
fn read_uleb_u32_strict(&mut self) -> Result<u32>
Reads a strict unsigned LEB128
u32.Source§fn read_uleb_u64(&mut self) -> Result<u64>
fn read_uleb_u64(&mut self) -> Result<u64>
Reads a non-strict unsigned LEB128
u64.Source§fn read_uleb_u64_strict(&mut self) -> Result<u64>
fn read_uleb_u64_strict(&mut self) -> Result<u64>
Reads a strict unsigned LEB128
u64.Source§fn read_uleb_u128(&mut self) -> Result<u128>
fn read_uleb_u128(&mut self) -> Result<u128>
Reads a non-strict unsigned LEB128
u128.Source§fn read_uleb_u128_strict(&mut self) -> Result<u128>
fn read_uleb_u128_strict(&mut self) -> Result<u128>
Reads a strict unsigned LEB128
u128.Source§fn read_uleb_usize(&mut self) -> Result<usize>
fn read_uleb_usize(&mut self) -> Result<usize>
Reads a non-strict unsigned LEB128
usize.Source§fn read_uleb_usize_strict(&mut self) -> Result<usize>
fn read_uleb_usize_strict(&mut self) -> Result<usize>
Reads a strict unsigned LEB128
usize.Source§fn read_sleb_i8(&mut self) -> Result<i8>
fn read_sleb_i8(&mut self) -> Result<i8>
Reads a non-strict signed LEB128
i8.Source§fn read_sleb_i8_strict(&mut self) -> Result<i8>
fn read_sleb_i8_strict(&mut self) -> Result<i8>
Reads a strict signed LEB128
i8.Source§fn read_sleb_i16(&mut self) -> Result<i16>
fn read_sleb_i16(&mut self) -> Result<i16>
Reads a non-strict signed LEB128
i16.Source§fn read_sleb_i16_strict(&mut self) -> Result<i16>
fn read_sleb_i16_strict(&mut self) -> Result<i16>
Reads a strict signed LEB128
i16.Source§fn read_sleb_i32(&mut self) -> Result<i32>
fn read_sleb_i32(&mut self) -> Result<i32>
Reads a non-strict signed LEB128
i32.Source§fn read_sleb_i32_strict(&mut self) -> Result<i32>
fn read_sleb_i32_strict(&mut self) -> Result<i32>
Reads a strict signed LEB128
i32.Source§fn read_sleb_i64(&mut self) -> Result<i64>
fn read_sleb_i64(&mut self) -> Result<i64>
Reads a non-strict signed LEB128
i64.Source§fn read_sleb_i64_strict(&mut self) -> Result<i64>
fn read_sleb_i64_strict(&mut self) -> Result<i64>
Reads a strict signed LEB128
i64.Source§fn read_sleb_i128(&mut self) -> Result<i128>
fn read_sleb_i128(&mut self) -> Result<i128>
Reads a non-strict signed LEB128
i128.Source§fn read_sleb_i128_strict(&mut self) -> Result<i128>
fn read_sleb_i128_strict(&mut self) -> Result<i128>
Reads a strict signed LEB128
i128.Source§fn read_sleb_isize(&mut self) -> Result<isize>
fn read_sleb_isize(&mut self) -> Result<isize>
Reads a non-strict signed LEB128
isize.Source§fn read_sleb_isize_strict(&mut self) -> Result<isize>
fn read_sleb_isize_strict(&mut self) -> Result<isize>
Reads a strict signed LEB128
isize.Source§impl<T> ReadExt for T
impl<T> ReadExt for T
Source§unsafe fn read_unchecked(
&mut self,
buffer: &mut [u8],
start_index: usize,
count: usize,
) -> Result<usize, Error>
unsafe fn read_unchecked( &mut self, buffer: &mut [u8], start_index: usize, count: usize, ) -> Result<usize, Error>
Reads bytes into a range of
buffer without checking the range bounds
in release builds. Read moreSource§unsafe fn read_exact_or_eof_unchecked(
&mut self,
buffer: &mut [u8],
start_index: usize,
count: usize,
) -> Result<usize, Error>
unsafe fn read_exact_or_eof_unchecked( &mut self, buffer: &mut [u8], start_index: usize, count: usize, ) -> Result<usize, Error>
Reads bytes into a range of
buffer until that range is full or EOF is
reached, without checking the range bounds in release builds. Read moreSource§unsafe fn read_exact_unchecked(
&mut self,
buffer: &mut [u8],
start_index: usize,
count: usize,
) -> Result<(), Error>
unsafe fn read_exact_unchecked( &mut self, buffer: &mut [u8], start_index: usize, count: usize, ) -> Result<(), Error>
Reads exactly
count bytes into a range of buffer without checking
the range bounds in release builds. Read moreSource§fn read_exact_or_eof(&mut self, buffer: &mut [u8]) -> Result<usize, Error>
fn read_exact_or_eof(&mut self, buffer: &mut [u8]) -> Result<usize, Error>
Reads bytes until
buffer is full or EOF is reached. Read moreSource§fn read_exact_array<const N: usize>(&mut self) -> Result<[u8; N], Error>
fn read_exact_array<const N: usize>(&mut self) -> Result<[u8; N], Error>
Reads exactly
N bytes into a stack-allocated array. Read moreSource§fn read_exact_vec_limited(
&mut self,
len: usize,
max_len: usize,
) -> Result<Vec<u8>, Error>
fn read_exact_vec_limited( &mut self, len: usize, max_len: usize, ) -> Result<Vec<u8>, Error>
Reads exactly
len bytes into a new vector after checking a limit. Read moreSource§fn read_exact_vec_limited_into(
&mut self,
output: &mut Vec<u8>,
len: usize,
max_len: usize,
) -> Result<(), Error>
fn read_exact_vec_limited_into( &mut self, output: &mut Vec<u8>, len: usize, max_len: usize, ) -> Result<(), Error>
Source§fn discard_exact_or_eof(&mut self, bytes: u64) -> Result<u64, Error>
fn discard_exact_or_eof(&mut self, bytes: u64) -> Result<u64, Error>
Discards up to
bytes bytes from this reader. Read moreSource§fn copy_to(&mut self, writer: &mut dyn Write) -> Result<u64, Error>
fn copy_to(&mut self, writer: &mut dyn Write) -> Result<u64, Error>
Copies all remaining bytes from this reader into
writer. Read moreSource§fn copy_to_at_most(
&mut self,
writer: &mut dyn Write,
max_bytes: u64,
) -> Result<u64, Error>
fn copy_to_at_most( &mut self, writer: &mut dyn Write, max_bytes: u64, ) -> Result<u64, Error>
Source§fn copy_to_end_limited(
&mut self,
writer: &mut dyn Write,
max_bytes: u64,
) -> Result<u64, Error>
fn copy_to_end_limited( &mut self, writer: &mut dyn Write, max_bytes: u64, ) -> Result<u64, Error>
Copies the remaining input if its total length is at most
max_bytes. Read moreSource§fn read_to_end_limited(&mut self, max_len: usize) -> Result<Vec<u8>, Error>
fn read_to_end_limited(&mut self, max_len: usize) -> Result<Vec<u8>, Error>
Reads the remaining bytes into a vector with a maximum accepted length. Read more
Source§fn read_to_end_limited_into(
&mut self,
output: &mut Vec<u8>,
max_len: usize,
) -> Result<usize, Error>
fn read_to_end_limited_into( &mut self, output: &mut Vec<u8>, max_len: usize, ) -> Result<usize, Error>
Reads the remaining bytes into
output with a maximum accepted length. Read moreSource§impl<T> ReadSeekExt for T
impl<T> ReadSeekExt for T
Source§impl<T> StringReadExt for T
impl<T> StringReadExt for T
Source§fn read_utf8_payload(
&mut self,
len: usize,
max_len: usize,
) -> Result<String, Error>
fn read_utf8_payload( &mut self, len: usize, max_len: usize, ) -> Result<String, Error>
Reads a UTF-8 payload with an already decoded byte length. Read more
Source§fn read_utf8_string_uleb(&mut self, max_len: usize) -> Result<String, Error>
fn read_utf8_string_uleb(&mut self, max_len: usize) -> Result<String, Error>
Reads a UTF-8 string with an unsigned LEB128 byte-length prefix. Read more
Source§fn read_utf8_string_uleb_strict(
&mut self,
max_len: usize,
) -> Result<String, Error>
fn read_utf8_string_uleb_strict( &mut self, max_len: usize, ) -> Result<String, Error>
Reads a UTF-8 string with a canonical unsigned LEB128 byte-length prefix. Read more
Source§fn read_utf8_string_u16(
&mut self,
byte_order: ByteOrder,
max_len: usize,
) -> Result<String, Error>
fn read_utf8_string_u16( &mut self, byte_order: ByteOrder, max_len: usize, ) -> Result<String, Error>
Reads a UTF-8 string with a runtime-order
u16 byte-length prefix. Read moreSource§fn read_utf8_string_u16_be(&mut self, max_len: usize) -> Result<String, Error>
fn read_utf8_string_u16_be(&mut self, max_len: usize) -> Result<String, Error>
Reads a UTF-8 string with a big-endian
u16 byte-length prefix. Read moreSource§fn read_utf8_string_u16_le(&mut self, max_len: usize) -> Result<String, Error>
fn read_utf8_string_u16_le(&mut self, max_len: usize) -> Result<String, Error>
Reads a UTF-8 string with a little-endian
u16 byte-length prefix. Read moreSource§fn read_utf8_string_u32(
&mut self,
byte_order: ByteOrder,
max_len: usize,
) -> Result<String, Error>
fn read_utf8_string_u32( &mut self, byte_order: ByteOrder, max_len: usize, ) -> Result<String, Error>
Reads a UTF-8 string with a runtime-order
u32 byte-length prefix. Read moreSource§impl<R> ZigZagReadExt for R
impl<R> ZigZagReadExt for R
Source§fn read_zig_zag_i8(&mut self) -> Result<i8>
fn read_zig_zag_i8(&mut self) -> Result<i8>
Reads a non-strict ZigZag
i8.Source§fn read_zig_zag_i8_strict(&mut self) -> Result<i8>
fn read_zig_zag_i8_strict(&mut self) -> Result<i8>
Reads a strict ZigZag
i8.Source§fn read_zig_zag_i16(&mut self) -> Result<i16>
fn read_zig_zag_i16(&mut self) -> Result<i16>
Reads a non-strict ZigZag
i16.Source§fn read_zig_zag_i16_strict(&mut self) -> Result<i16>
fn read_zig_zag_i16_strict(&mut self) -> Result<i16>
Reads a strict ZigZag
i16.Source§fn read_zig_zag_i32(&mut self) -> Result<i32>
fn read_zig_zag_i32(&mut self) -> Result<i32>
Reads a non-strict ZigZag
i32.Source§fn read_zig_zag_i32_strict(&mut self) -> Result<i32>
fn read_zig_zag_i32_strict(&mut self) -> Result<i32>
Reads a strict ZigZag
i32.Source§fn read_zig_zag_i64(&mut self) -> Result<i64>
fn read_zig_zag_i64(&mut self) -> Result<i64>
Reads a non-strict ZigZag
i64.Source§fn read_zig_zag_i64_strict(&mut self) -> Result<i64>
fn read_zig_zag_i64_strict(&mut self) -> Result<i64>
Reads a strict ZigZag
i64.Source§fn read_zig_zag_i128(&mut self) -> Result<i128>
fn read_zig_zag_i128(&mut self) -> Result<i128>
Reads a non-strict ZigZag
i128.Source§fn read_zig_zag_i128_strict(&mut self) -> Result<i128>
fn read_zig_zag_i128_strict(&mut self) -> Result<i128>
Reads a strict ZigZag
i128.Source§fn read_zig_zag_isize(&mut self) -> Result<isize>
fn read_zig_zag_isize(&mut self) -> Result<isize>
Reads a non-strict ZigZag
isize.Source§fn read_zig_zag_isize_strict(&mut self) -> Result<isize>
fn read_zig_zag_isize_strict(&mut self) -> Result<isize>
Reads a strict ZigZag
isize.