Struct irox_progress::write::WriterTask
source · 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)
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
pub fn main() -> Result<(), Error> {
let mut rand = Random::default();
let cons = ConsoleProgressPrinter::new_update_rate(Duration::from_millis(100));
let task = Task::new_infinite_named("Writer".to_string());
cons.track_task_progress(&task);
task.mark_started();
let out = OpenOptions::new()
.write(true)
.truncate(true)
.create(true)
.open("test")?;
let out = BufWriter::new(out);
let mut out = WriterTask::new(out, task);
let gb = 1_000_000_000 / 8;
for _i in 0..gb {
out.write_be_u64(rand.next_u64())?;
}
Ok(())
}Trait Implementations§
source§impl<T: Write> Drop for WriterTask<T>
impl<T: Write> Drop for WriterTask<T>
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>
Write a buffer into this writer, returning how many bytes were written. Read more
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush 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> 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