Struct okaywal::EntryChunk
source · pub struct EntryChunk<'chunk, 'entry, F>where
F: File,{ /* private fields */ }
Expand description
A chunk of data previously written using
EntryWriter::write_chunk
.
Panics
Once dropped, this type will ensure that the entry reader is advanced to the
end of this chunk if needed by calling
EntryChunk::skip_remaining_bytes()
. If an error occurs during this call,
a panic will occur.
To prevent all possibilities of panics, all bytes should be exhausted before dropping this type by:
- Using
Read
until a 0 is returned. - Using
EntryChunk::read_all()
to read all remaining bytes at once. - Skipping all remaining bytes using
EntryChunk::skip_remaining_bytes()
Implementations§
source§impl<'chunk, 'entry, F> EntryChunk<'chunk, 'entry, F>where
F: File,
impl<'chunk, 'entry, F> EntryChunk<'chunk, 'entry, F>where F: File,
sourcepub fn log_position(&self) -> LogPosition
pub fn log_position(&self) -> LogPosition
Returns the position that this chunk is located at.
sourcepub const fn bytes_remaining(&self) -> u32
pub const fn bytes_remaining(&self) -> u32
Returns the number of bytes remaining to read from this chunk.
sourcepub fn check_crc(&mut self) -> Result<bool>
pub fn check_crc(&mut self) -> Result<bool>
Returns true if the CRC has been validated, or false if the computed CRC is different than the stored CRC. Returns an error if the chunk has not been fully read yet.
sourcepub fn skip_remaining_bytes(self) -> Result<()>
pub fn skip_remaining_bytes(self) -> Result<()>
Advances past the end of this chunk without reading the remaining bytes.
Trait Implementations§
source§impl<'chunk, 'entry, F> Debug for EntryChunk<'chunk, 'entry, F>where
F: File + Debug,
impl<'chunk, 'entry, F> Debug for EntryChunk<'chunk, 'entry, F>where F: File + Debug,
source§impl<'chunk, 'entry, F> Drop for EntryChunk<'chunk, 'entry, F>where
F: File,
impl<'chunk, 'entry, F> Drop for EntryChunk<'chunk, 'entry, F>where F: File,
source§impl<'chunk, 'entry, F> Read for EntryChunk<'chunk, 'entry, F>where
F: File,
impl<'chunk, 'entry, F> Read for EntryChunk<'chunk, 'entry, F>where F: File,
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
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, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
Read 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>
Read 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>
Read 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
)Read 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” adaptor for this instance of
Read
. Read moreAuto Trait Implementations§
impl<'chunk, 'entry, F> RefUnwindSafe for EntryChunk<'chunk, 'entry, F>where F: RefUnwindSafe,
impl<'chunk, 'entry, F> Send for EntryChunk<'chunk, 'entry, F>
impl<'chunk, 'entry, F> Sync for EntryChunk<'chunk, 'entry, F>
impl<'chunk, 'entry, F> Unpin for EntryChunk<'chunk, 'entry, F>
impl<'chunk, 'entry, F> !UnwindSafe for EntryChunk<'chunk, 'entry, F>
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