pub struct MemWriter {
pub data: Vec<u8>,
pub pos: usize,
}
Expand description
A memory writer that can write data to a vector of bytes.
Fields§
§data: Vec<u8>
The data to write to.
pos: usize
The current position in the data.
Implementations§
Trait Implementations§
Source§impl CPeek for MemWriter
impl CPeek for MemWriter
Source§fn cpeek(&self, buf: &mut [u8]) -> Result<usize>
fn cpeek(&self, buf: &mut [u8]) -> Result<usize>
Peeks data from the reader into the provided buffer.
Returns the number of bytes read.
Source§fn cpeek_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize>
fn cpeek_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize>
Peeks data from the reader at a specific offset into the provided buffer.
Returns the number of bytes read.
Source§fn cpeek_cstring(&self) -> Result<CString>
fn cpeek_cstring(&self) -> Result<CString>
Peeks a C-style string (null-terminated) from the reader.
Source§fn cpeek_exact(&self, buf: &mut [u8]) -> Result<()>
fn cpeek_exact(&self, buf: &mut [u8]) -> Result<()>
Peeks data from the reader into the provided buffer.
Returns an error if the buffer is not filled completely.
Source§fn cpeek_exact_at(&self, offset: u64, buf: &mut [u8]) -> Result<()>
fn cpeek_exact_at(&self, offset: u64, buf: &mut [u8]) -> Result<()>
Peeks data from the reader at a specific offset into the provided buffer.
Returns an error if the buffer is not filled completely.
Source§fn cpeek_at_vec(&self, offset: u64, len: usize) -> Result<Vec<u8>>
fn cpeek_at_vec(&self, offset: u64, len: usize) -> Result<Vec<u8>>
Peeks data from the reader at a specific offset into a vector.
Returns the vector containing the data read.
Source§fn cpeek_exact_at_vec(&self, offset: u64, len: usize) -> Result<Vec<u8>>
fn cpeek_exact_at_vec(&self, offset: u64, len: usize) -> Result<Vec<u8>>
Peeks data from the reader at a specific offset into a vector.
Returns an error if the buffer is not filled completely.
Source§fn cpeek_u8_at(&self, offset: u64) -> Result<u8>
fn cpeek_u8_at(&self, offset: u64) -> Result<u8>
Peeks a u8 at a specific offset from the reader.
Source§fn cpeek_u16_at(&self, offset: u64) -> Result<u16>
fn cpeek_u16_at(&self, offset: u64) -> Result<u16>
Peeks a u16 at a specific offset from the reader in little-endian order.
Source§fn cpeek_u16_be_at(&self, offset: u64) -> Result<u16>
fn cpeek_u16_be_at(&self, offset: u64) -> Result<u16>
Peeks a u16 at a specific offset from the reader in big-endian order.
Source§fn cpeek_u32_at(&self, offset: u64) -> Result<u32>
fn cpeek_u32_at(&self, offset: u64) -> Result<u32>
Peeks a u32 at a specific offset from the reader in little-endian order.
Source§fn cpeek_u32_be_at(&self, offset: u64) -> Result<u32>
fn cpeek_u32_be_at(&self, offset: u64) -> Result<u32>
Peeks a u32 at a specific offset from the reader in big-endian order.
Source§fn cpeek_u64_at(&self, offset: u64) -> Result<u64>
fn cpeek_u64_at(&self, offset: u64) -> Result<u64>
Peeks a u64 at a specific offset from the reader in little-endian order.
Source§fn cpeek_u64_be_at(&self, offset: u64) -> Result<u64>
fn cpeek_u64_be_at(&self, offset: u64) -> Result<u64>
Peeks a u64 at a specific offset from the reader in big-endian order.
Source§fn cpeek_u128_at(&self, offset: u64) -> Result<u128>
fn cpeek_u128_at(&self, offset: u64) -> Result<u128>
Peeks a u128 at a specific offset from the reader in little-endian order.
Source§fn cpeek_u128_be_at(&self, offset: u64) -> Result<u128>
fn cpeek_u128_be_at(&self, offset: u64) -> Result<u128>
Peeks a u128 at a specific offset from the reader in big-endian order.
Source§fn cpeek_i8_at(&self, offset: u64) -> Result<i8>
fn cpeek_i8_at(&self, offset: u64) -> Result<i8>
Peeks an i8 at a specific offset from the reader.
Source§fn cpeek_i16_at(&self, offset: u64) -> Result<i16>
fn cpeek_i16_at(&self, offset: u64) -> Result<i16>
Peeks an i16 at a specific offset from the reader in little-endian order.
Source§fn cpeek_i16_be_at(&self, offset: u64) -> Result<i16>
fn cpeek_i16_be_at(&self, offset: u64) -> Result<i16>
Peeks an i16 at a specific offset from the reader in big-endian order.
Source§fn cpeek_i32_at(&self, offset: u64) -> Result<i32>
fn cpeek_i32_at(&self, offset: u64) -> Result<i32>
Peeks an i32 at a specific offset from the reader in little-endian order.
Source§fn cpeek_i32_be_at(&self, offset: u64) -> Result<i32>
fn cpeek_i32_be_at(&self, offset: u64) -> Result<i32>
Peeks an i32 at a specific offset from the reader in big-endian order.
Source§fn cpeek_i64_at(&self, offset: u64) -> Result<i64>
fn cpeek_i64_at(&self, offset: u64) -> Result<i64>
Peeks an i64 at a specific offset from the reader in little-endian order.
Source§fn cpeek_i64_be_at(&self, offset: u64) -> Result<i64>
fn cpeek_i64_be_at(&self, offset: u64) -> Result<i64>
Peeks an i64 at a specific offset from the reader in big-endian order.
Source§fn cpeek_i128_at(&self, offset: u64) -> Result<i128>
fn cpeek_i128_at(&self, offset: u64) -> Result<i128>
Peeks an i128 at a specific offset from the reader in little-endian order.
Source§fn cpeek_i128_be_at(&self, offset: u64) -> Result<i128>
fn cpeek_i128_be_at(&self, offset: u64) -> Result<i128>
Peeks an i128 at a specific offset from the reader in big-endian order.
Source§fn cpeek_cstring_at(&self, offset: u64) -> Result<CString>
fn cpeek_cstring_at(&self, offset: u64) -> Result<CString>
Peeks a C-style string (null-terminated) from the reader at a specific offset.
Source§impl Seek for MemWriter
impl Seek for MemWriter
Source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
Seek to an offset, in bytes, in a stream. Read more
Source§fn stream_position(&mut self) -> Result<u64>
fn stream_position(&mut self) -> Result<u64>
Returns the current seek position from the start of the stream. Read more
Source§impl Write for MemWriter
impl Write for MemWriter
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for MemWriter
impl RefUnwindSafe for MemWriter
impl Send for MemWriter
impl Sync for MemWriter
impl Unpin for MemWriter
impl UnwindSafe for MemWriter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> WriteAt for T
impl<T> WriteAt for T
Source§fn write_at(&mut self, offset: u64, buf: &[u8]) -> Result<usize, Error>
fn write_at(&mut self, offset: u64, buf: &[u8]) -> Result<usize, Error>
Writes data to the writer at a specific offset.
Returns the number of bytes written.
Source§fn write_all_at(&mut self, offset: u64, buf: &[u8]) -> Result<(), Error>
fn write_all_at(&mut self, offset: u64, buf: &[u8]) -> Result<(), Error>
Writes all data to the writer at a specific offset.
Returns an error if the write fails.
Source§fn write_u8_at(&mut self, offset: u64, value: u8) -> Result<()>
fn write_u8_at(&mut self, offset: u64, value: u8) -> Result<()>
Writes a u8 at a specific offset.
Source§fn write_u16_at(&mut self, offset: u64, value: u16) -> Result<()>
fn write_u16_at(&mut self, offset: u64, value: u16) -> Result<()>
Writes a u16 at a specific offset in little-endian order.
Source§fn write_u16_be_at(&mut self, offset: u64, value: u16) -> Result<()>
fn write_u16_be_at(&mut self, offset: u64, value: u16) -> Result<()>
Writes a u16 at a specific offset in big-endian order.
Source§fn write_u32_at(&mut self, offset: u64, value: u32) -> Result<()>
fn write_u32_at(&mut self, offset: u64, value: u32) -> Result<()>
Writes a u32 at a specific offset in little-endian order.
Source§fn write_u32_be_at(&mut self, offset: u64, value: u32) -> Result<()>
fn write_u32_be_at(&mut self, offset: u64, value: u32) -> Result<()>
Writes a u32 at a specific offset in big-endian order.
Source§fn write_u64_at(&mut self, offset: u64, value: u64) -> Result<()>
fn write_u64_at(&mut self, offset: u64, value: u64) -> Result<()>
Writes a u64 at a specific offset in little-endian order.
Source§fn write_u64_be_at(&mut self, offset: u64, value: u64) -> Result<()>
fn write_u64_be_at(&mut self, offset: u64, value: u64) -> Result<()>
Writes a u64 at a specific offset in big-endian order.
Source§fn write_u128_at(&mut self, offset: u64, value: u128) -> Result<()>
fn write_u128_at(&mut self, offset: u64, value: u128) -> Result<()>
Writes a u128 at a specific offset in little-endian order.
Source§fn write_u128_be_at(&mut self, offset: u64, value: u128) -> Result<()>
fn write_u128_be_at(&mut self, offset: u64, value: u128) -> Result<()>
Writes a u128 at a specific offset in big-endian order.
Source§fn write_i8_at(&mut self, offset: u64, value: i8) -> Result<()>
fn write_i8_at(&mut self, offset: u64, value: i8) -> Result<()>
Writes an i8 at a specific offset.
Source§fn write_i16_at(&mut self, offset: u64, value: i16) -> Result<()>
fn write_i16_at(&mut self, offset: u64, value: i16) -> Result<()>
Writes an i16 at a specific offset in little-endian order.
Source§fn write_i16_be_at(&mut self, offset: u64, value: i16) -> Result<()>
fn write_i16_be_at(&mut self, offset: u64, value: i16) -> Result<()>
Writes an i16 at a specific offset in big-endian order.
Source§fn write_i32_at(&mut self, offset: u64, value: i32) -> Result<()>
fn write_i32_at(&mut self, offset: u64, value: i32) -> Result<()>
Writes an i32 at a specific offset in little-endian order.
Source§fn write_i32_be_at(&mut self, offset: u64, value: i32) -> Result<()>
fn write_i32_be_at(&mut self, offset: u64, value: i32) -> Result<()>
Writes an i32 at a specific offset in big-endian order.
Source§fn write_i64_at(&mut self, offset: u64, value: i64) -> Result<()>
fn write_i64_at(&mut self, offset: u64, value: i64) -> Result<()>
Writes an i64 at a specific offset in little-endian order.
Source§fn write_i64_be_at(&mut self, offset: u64, value: i64) -> Result<()>
fn write_i64_be_at(&mut self, offset: u64, value: i64) -> Result<()>
Writes an i64 at a specific offset in big-endian order.
Source§fn write_i128_at(&mut self, offset: u64, value: i128) -> Result<()>
fn write_i128_at(&mut self, offset: u64, value: i128) -> Result<()>
Writes an i128 at a specific offset in little-endian order.
Source§impl<W> WriteBytesExt for W
impl<W> WriteBytesExt for W
Source§fn write_u8(&mut self, n: u8) -> Result<(), Error>
fn write_u8(&mut self, n: u8) -> Result<(), Error>
Writes an unsigned 8 bit integer to the underlying writer. Read more
Source§fn write_i8(&mut self, n: i8) -> Result<(), Error>
fn write_i8(&mut self, n: i8) -> Result<(), Error>
Writes a signed 8 bit integer to the underlying writer. Read more
Source§fn write_u16<T>(&mut self, n: u16) -> Result<(), Error>where
T: ByteOrder,
fn write_u16<T>(&mut self, n: u16) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned 16 bit integer to the underlying writer. Read more
Source§fn write_i16<T>(&mut self, n: i16) -> Result<(), Error>where
T: ByteOrder,
fn write_i16<T>(&mut self, n: i16) -> Result<(), Error>where
T: ByteOrder,
Writes a signed 16 bit integer to the underlying writer. Read more
Source§fn write_u24<T>(&mut self, n: u32) -> Result<(), Error>where
T: ByteOrder,
fn write_u24<T>(&mut self, n: u32) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned 24 bit integer to the underlying writer. Read more
Source§fn write_i24<T>(&mut self, n: i32) -> Result<(), Error>where
T: ByteOrder,
fn write_i24<T>(&mut self, n: i32) -> Result<(), Error>where
T: ByteOrder,
Writes a signed 24 bit integer to the underlying writer. Read more
Source§fn write_u32<T>(&mut self, n: u32) -> Result<(), Error>where
T: ByteOrder,
fn write_u32<T>(&mut self, n: u32) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned 32 bit integer to the underlying writer. Read more
Source§fn write_i32<T>(&mut self, n: i32) -> Result<(), Error>where
T: ByteOrder,
fn write_i32<T>(&mut self, n: i32) -> Result<(), Error>where
T: ByteOrder,
Writes a signed 32 bit integer to the underlying writer. Read more
Source§fn write_u48<T>(&mut self, n: u64) -> Result<(), Error>where
T: ByteOrder,
fn write_u48<T>(&mut self, n: u64) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned 48 bit integer to the underlying writer. Read more
Source§fn write_i48<T>(&mut self, n: i64) -> Result<(), Error>where
T: ByteOrder,
fn write_i48<T>(&mut self, n: i64) -> Result<(), Error>where
T: ByteOrder,
Writes a signed 48 bit integer to the underlying writer. Read more
Source§fn write_u64<T>(&mut self, n: u64) -> Result<(), Error>where
T: ByteOrder,
fn write_u64<T>(&mut self, n: u64) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned 64 bit integer to the underlying writer. Read more
Source§fn write_i64<T>(&mut self, n: i64) -> Result<(), Error>where
T: ByteOrder,
fn write_i64<T>(&mut self, n: i64) -> Result<(), Error>where
T: ByteOrder,
Writes a signed 64 bit integer to the underlying writer. Read more
Source§fn write_u128<T>(&mut self, n: u128) -> Result<(), Error>where
T: ByteOrder,
fn write_u128<T>(&mut self, n: u128) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned 128 bit integer to the underlying writer.
Source§fn write_i128<T>(&mut self, n: i128) -> Result<(), Error>where
T: ByteOrder,
fn write_i128<T>(&mut self, n: i128) -> Result<(), Error>where
T: ByteOrder,
Writes a signed 128 bit integer to the underlying writer.
Source§fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned n-bytes integer to the underlying writer. Read more
Source§fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
Writes a signed n-bytes integer to the underlying writer. Read more
Source§fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
Writes an unsigned n-bytes integer to the underlying writer. Read more
Source§fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error>where
T: ByteOrder,
Writes a signed n-bytes integer to the underlying writer. Read more
Source§impl<T> WriteExt for Twhere
T: Write,
impl<T> WriteExt for Twhere
T: Write,
Source§fn write_u16(&mut self, value: u16) -> Result<(), Error>
fn write_u16(&mut self, value: u16) -> Result<(), Error>
Writes a u16 to the writer in little-endian order.
Source§fn write_u16_be(&mut self, value: u16) -> Result<(), Error>
fn write_u16_be(&mut self, value: u16) -> Result<(), Error>
Writes a u16 to the writer in big-endian order.
Source§fn write_u32(&mut self, value: u32) -> Result<(), Error>
fn write_u32(&mut self, value: u32) -> Result<(), Error>
Writes a u32 to the writer in little-endian order.
Source§fn write_u32_be(&mut self, value: u32) -> Result<(), Error>
fn write_u32_be(&mut self, value: u32) -> Result<(), Error>
Writes a u32 to the writer in big-endian order.
Source§fn write_u64(&mut self, value: u64) -> Result<(), Error>
fn write_u64(&mut self, value: u64) -> Result<(), Error>
Writes a u64 to the writer in little-endian order.
Source§fn write_u64_be(&mut self, value: u64) -> Result<(), Error>
fn write_u64_be(&mut self, value: u64) -> Result<(), Error>
Writes a u64 to the writer in big-endian order.
Source§fn write_u128(&mut self, value: u128) -> Result<(), Error>
fn write_u128(&mut self, value: u128) -> Result<(), Error>
Writes a u128 to the writer in little-endian order.
Source§fn write_u128_be(&mut self, value: u128) -> Result<(), Error>
fn write_u128_be(&mut self, value: u128) -> Result<(), Error>
Writes a u128 to the writer in big-endian order.
Source§fn write_i16(&mut self, value: i16) -> Result<(), Error>
fn write_i16(&mut self, value: i16) -> Result<(), Error>
Writes an i16 to the writer in little-endian order.
Source§fn write_i16_be(&mut self, value: i16) -> Result<(), Error>
fn write_i16_be(&mut self, value: i16) -> Result<(), Error>
Writes an i16 to the writer in big-endian order.
Source§fn write_i32(&mut self, value: i32) -> Result<(), Error>
fn write_i32(&mut self, value: i32) -> Result<(), Error>
Writes an i32 to the writer in little-endian order.
Source§fn write_i32_be(&mut self, value: i32) -> Result<(), Error>
fn write_i32_be(&mut self, value: i32) -> Result<(), Error>
Writes an i32 to the writer in big-endian order.
Source§fn write_i64(&mut self, value: i64) -> Result<(), Error>
fn write_i64(&mut self, value: i64) -> Result<(), Error>
Writes an i64 to the writer in little-endian order.
Source§fn write_i64_be(&mut self, value: i64) -> Result<(), Error>
fn write_i64_be(&mut self, value: i64) -> Result<(), Error>
Writes an i64 to the writer in big-endian order.
Source§fn write_i128(&mut self, value: i128) -> Result<(), Error>
fn write_i128(&mut self, value: i128) -> Result<(), Error>
Writes an i128 to the writer in little-endian order.