pub struct CountingWriter<W> {
wtr: W,
cnt: u64,
summer: CheckSummer,
}
Expand description
Wraps any writer that counts and checksums bytes written.
Fields§
§wtr: W
§cnt: u64
§summer: CheckSummer
Implementations§
Source§impl<W: Write> CountingWriter<W>
impl<W: Write> CountingWriter<W>
Sourcepub fn new(wtr: W) -> CountingWriter<W> ⓘ
pub fn new(wtr: W) -> CountingWriter<W> ⓘ
Wrap the given writer with a counter.
Sourcepub fn count(&self) -> u64
pub fn count(&self) -> u64
Return the total number of bytes written to the underlying writer.
The count returned is the sum of all counts resulting from a call
to write
.
Sourcepub fn masked_checksum(&self) -> u32
pub fn masked_checksum(&self) -> u32
Returns the masked CRC32C checksum of the bytes written so far.
This “masked” checksum is the same one used by the Snappy frame format. Masking is supposed to make the checksum robust with respect to data that contains the checksum itself.
Sourcepub fn into_inner(self) -> W
pub fn into_inner(self) -> W
Unwrap the counting writer and return the inner writer.
Trait Implementations§
Source§impl<W: Write> Write for CountingWriter<W>
impl<W: Write> Write for CountingWriter<W>
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<W> Freeze for CountingWriter<W>where
W: Freeze,
impl<W> RefUnwindSafe for CountingWriter<W>where
W: RefUnwindSafe,
impl<W> Send for CountingWriter<W>where
W: Send,
impl<W> Sync for CountingWriter<W>where
W: Sync,
impl<W> Unpin for CountingWriter<W>where
W: Unpin,
impl<W> UnwindSafe for CountingWriter<W>where
W: UnwindSafe,
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