Struct cursive_core::utils::ProgressReader [−][src]
pub struct ProgressReader<R: Read> { /* fields omitted */ }Expand description
Wrapper around a Read that reports the progress made.
Used to monitor a file downloading or other slow IO task in a progress bar.
Examples
use std::io::Read;
use cursive_core::utils::{Counter, ProgressReader};
// Read a file and report the progress
let file = std::fs::File::open("large_file").unwrap();
let counter = Counter::new(0);
let mut reader = ProgressReader::new(counter.clone(), file);
std::thread::spawn(move || {
// Left as an exercise: use an AtomicBool for a stop condition!
loop {
let progress = counter.get();
println!("Read {} bytes so far", progress);
}
});
// As we read data, the counter will be updated and the control thread
// will monitor the progress.
let mut buffer = Vec::new();
reader.read_to_end(&mut buffer).unwrap();Implementations
Creates a new ProgressReader around reader.
counter will be updated with the number of bytes read.
You should make sure the progress bar knows how many bytes should be received.
Unwraps this ProgressReader, returning the reader and counter.
Trait Implementations
fn clone(&self) -> ProgressReader<R>ⓘNotable traits for ProgressReader<R>impl<R: Read> Read for ProgressReader<R>
fn clone(&self) -> ProgressReader<R>ⓘNotable traits for ProgressReader<R>impl<R: Read> Read for ProgressReader<R>
impl<R: Read> Read for ProgressReader<R>Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Like read, except that it reads into a slice of buffers. Read more
can_vector)Determines if this Reader has an efficient read_vectored
implementation. Read more
Read all bytes until EOF in this source, placing them into buf. Read more
Read all bytes until EOF in this source, appending them to buf. Read more
Read the exact number of bytes required to fill buf. Read more
read_buf)Pull some bytes from this source into the specified buffer. Read more
read_buf)Read the exact number of bytes required to fill buf. Read more
Creates a “by reference” adaptor for this instance of Read. Read more
Creates an adapter which will chain this stream with another. Read more
Auto Trait Implementations
impl<R> RefUnwindSafe for ProgressReader<R> where
R: RefUnwindSafe,
impl<R> Send for ProgressReader<R> where
R: Send,
impl<R> Sync for ProgressReader<R> where
R: Sync,
impl<R> Unpin for ProgressReader<R> where
R: Unpin,
impl<R> UnwindSafe for ProgressReader<R> where
R: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
