pub struct WriterTask<T: Write> { /* private fields */ }Expand description
A Writer Task accepts a Writer and a task and updates the task with the count of bytes written.
Implementations§
Source§impl<T: Write> WriterTask<T>
impl<T: Write> WriterTask<T>
Sourcepub fn new(writer: T, task: Task) -> Self
pub fn new(writer: T, task: Task) -> Self
Creates a new Writer Task
Examples found in repository?
examples/progress_random_write.rs (line 29)
15pub fn main() -> Result<(), Error> {
16 let mut rand = Random::default();
17
18 let cons = ConsoleProgressPrinter::new_update_rate(Duration::from_millis(100));
19 let task = Task::new_infinite_named("Writer".to_string());
20 cons.track_task_progress(&task);
21 task.mark_started();
22
23 let out = OpenOptions::new()
24 .write(true)
25 .truncate(true)
26 .create(true)
27 .open("test")?;
28 let out = BufWriter::new(out);
29 let mut out = WriterTask::new(out, task);
30
31 let gb = 1_000_000_000 / 8;
32 for _i in 0..gb {
33 out.write_be_u64(rand.next_u64())?;
34 }
35
36 Ok(())
37}Trait Implementations§
Source§impl<T: Write> Drop for WriterTask<T>
impl<T: Write> Drop for WriterTask<T>
Source§impl<T: Write> MutBits for WriterTask<T>
impl<T: Write> MutBits for WriterTask<T>
Source§fn write_be_utf8_char(&mut self, val: char) -> Result<usize, BitsError>
fn write_be_utf8_char(&mut self, val: char) -> Result<usize, BitsError>
Encodes the character as UTF-8, and writes anywhere from 1-4 bytes. The number of bytes
written is returned.
Source§fn write_be_u16(&mut self, val: u16) -> Result<(), BitsError>
fn write_be_u16(&mut self, val: u16) -> Result<(), BitsError>
Writes a single
u16 in big-endian order, 2 bytes, MSB first.Source§fn write_le_u16(&mut self, val: u16) -> Result<(), BitsError>
fn write_le_u16(&mut self, val: u16) -> Result<(), BitsError>
Writes a single
u16 in little-endian order, 2 bytes, LSB first.Source§fn write_be_u32(&mut self, val: u32) -> Result<(), BitsError>
fn write_be_u32(&mut self, val: u32) -> Result<(), BitsError>
Writes a single
u32 in big-endian order, 4 bytes, MSB first.Source§fn write_le_u32(&mut self, val: u32) -> Result<(), BitsError>
fn write_le_u32(&mut self, val: u32) -> Result<(), BitsError>
Writes a single
u32 in little-endian order, 4 bytes, LSB first.Source§fn write_be_u64(&mut self, val: u64) -> Result<(), BitsError>
fn write_be_u64(&mut self, val: u64) -> Result<(), BitsError>
Writes a single
u64 in big-endian order, 8 bytes, MSB first.Source§fn write_le_u64(&mut self, val: u64) -> Result<(), BitsError>
fn write_le_u64(&mut self, val: u64) -> Result<(), BitsError>
Writes a single
u64 in little-endian order, 8 bytes, LSB first.Source§fn write_be_u128(&mut self, val: u128) -> Result<(), BitsError>
fn write_be_u128(&mut self, val: u128) -> Result<(), BitsError>
Writes a single
u128 in big-endian order, 16 bytes, MSB first.Source§fn write_le_u128(&mut self, val: u128) -> Result<(), BitsError>
fn write_le_u128(&mut self, val: u128) -> Result<(), BitsError>
Writes a single
u128 in little-endian order, 16 bytes, LSB first.Source§fn write_be_f32(&mut self, val: f32) -> Result<(), BitsError>
fn write_be_f32(&mut self, val: f32) -> Result<(), BitsError>
Writes a single
f32 in standard IEEE754 format, 4 bytesSource§fn write_le_f32(&mut self, val: f32) -> Result<(), BitsError>
fn write_le_f32(&mut self, val: f32) -> Result<(), BitsError>
Writes a single
f32 in reversed IEEE754 format, 4 bytesSource§fn write_be_f64(&mut self, val: f64) -> Result<(), BitsError>
fn write_be_f64(&mut self, val: f64) -> Result<(), BitsError>
Writes a single
u16 in standard IEEE754 format, 8 bytesSource§fn write_le_f64(&mut self, val: f64) -> Result<(), BitsError>
fn write_le_f64(&mut self, val: f64) -> Result<(), BitsError>
Writes a single
u16 in reversed IEEE754 format, 8 bytesSource§fn write_be_i16(&mut self, val: i16) -> Result<(), BitsError>
fn write_be_i16(&mut self, val: i16) -> Result<(), BitsError>
Writes a single
i16 in big-endian order, 2 bytes, MSB first.Source§fn write_le_i16(&mut self, val: i16) -> Result<(), BitsError>
fn write_le_i16(&mut self, val: i16) -> Result<(), BitsError>
Writes a single
i16 in little-endian order, 2 bytes, LSB first.Source§fn write_be_i32(&mut self, val: i32) -> Result<(), BitsError>
fn write_be_i32(&mut self, val: i32) -> Result<(), BitsError>
Writes a single
i32 in big-endian order, 4 bytes, MSB first.Source§fn write_le_i32(&mut self, val: i32) -> Result<(), BitsError>
fn write_le_i32(&mut self, val: i32) -> Result<(), BitsError>
Writes a single
i32 in little-endian order, 4 bytes, LSB first.Source§fn write_be_i64(&mut self, val: i64) -> Result<(), BitsError>
fn write_be_i64(&mut self, val: i64) -> Result<(), BitsError>
Writes a single
i64 in big-endian order, 8 bytes, MSB first.Source§fn write_le_i64(&mut self, val: i64) -> Result<(), BitsError>
fn write_le_i64(&mut self, val: i64) -> Result<(), BitsError>
Writes a single
i64 in little-endian order, 8 bytes, LSB first.Source§fn write_be_i128(&mut self, val: i128) -> Result<(), BitsError>
fn write_be_i128(&mut self, val: i128) -> Result<(), BitsError>
Writes a single
i128 in big-endian order, 16 bytes, MSB first.Source§fn write_le_i128(&mut self, val: i128) -> Result<(), BitsError>
fn write_le_i128(&mut self, val: i128) -> Result<(), BitsError>
Writes a single
i128 in little-endian order, 16 bytes, LSB first.Source§fn write_u8_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_u8_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u8 declaring the sizeSource§fn write_be_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_be_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u16 declaring the sizeSource§fn write_le_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_le_u16_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u16 declaring the sizeSource§fn write_be_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_be_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u32 declaring the sizeSource§fn write_le_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_le_u32_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u32 declaring the sizeSource§fn write_be_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_be_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u64 declaring the sizeSource§fn write_le_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
fn write_le_u64_blob(&mut self, val: &[u8]) -> Result<(), BitsError>
Writes a sized blob, a series of bytes preceded by a
u64 declaring the sizeSource§fn write_fmt_impl(&mut self, args: Arguments<'_>) -> Result<(), BitsError>
fn write_fmt_impl(&mut self, args: Arguments<'_>) -> Result<(), BitsError>
Allows the use of
core::format_args macroSource§fn write_some_bytes(&mut self, val: &[u8]) -> usize
fn write_some_bytes(&mut self, val: &[u8]) -> usize
Writes some subset of bytes until either the input is exhausted, or the
underlying buffer fills up or errors. Returns the total number of bytes
written
Source§fn write_str_u32_blob(&mut self, val: &str) -> Result<usize, BitsError>
fn write_str_u32_blob(&mut self, val: &str) -> Result<usize, BitsError>
Writes a specific sized string from the stream, a string prefixed by a
4-byte big-endian length.
Source§fn write_exact(&mut self, val: &[u8], len: usize) -> Result<(), BitsError>
fn write_exact(&mut self, val: &[u8], len: usize) -> Result<(), BitsError>
Writes the exact amount of bytes from the input buffer to the output stream
Returns an error if the buffer doesn’t have enough values or if the
output stream errors.
Source§impl<T: Write> Write for WriterTask<T>
impl<T: Write> Write for WriterTask<T>
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<T> Freeze for WriterTask<T>where
T: Freeze,
impl<T> RefUnwindSafe for WriterTask<T>where
T: RefUnwindSafe,
impl<T> Send for WriterTask<T>where
T: Send,
impl<T> Sync for WriterTask<T>where
T: Sync,
impl<T> Unpin for WriterTask<T>where
T: Unpin,
impl<T> UnwindSafe for WriterTask<T>where
T: 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