[−][src]Struct cursive_core::utils::ProgressReader
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
impl<R: Read> ProgressReader<R>[src]
pub fn new(counter: Counter, reader: R) -> Self[src]
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.
pub fn deconstruct(self) -> (R, Counter)[src]
Unwraps this ProgressReader, returning the reader and counter.
Trait Implementations
impl<R: Clone + Read> Clone for ProgressReader<R>[src]
pub fn clone(&self) -> ProgressReader<R>ⓘNotable traits for ProgressReader<R>
impl<R: Read> Read for ProgressReader<R>[src]
Notable traits for ProgressReader<R>
impl<R: Read> Read for ProgressReader<R>pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<R: Debug + Read> Debug for ProgressReader<R>[src]
impl<R: Read> Read for ProgressReader<R>[src]
pub fn read(&mut self, buf: &mut [u8]) -> Result<usize>[src]
pub fn read_vectored(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<usize, Error>1.36.0[src]
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<usize, Error>
pub fn is_read_vectored(&self) -> bool[src]
pub unsafe fn initializer(&self) -> Initializer[src]
pub fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>1.0.0[src]
pub fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>1.0.0[src]
pub fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>1.6.0[src]
pub fn by_ref(&mut self) -> &mut Self1.0.0[src]
pub fn bytes(self) -> Bytes<Self>1.0.0[src]
pub fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read, 1.0.0[src]
R: Read,
pub fn take(self, limit: u64) -> Take<Self>1.0.0[src]
Auto Trait Implementations
impl<R> RefUnwindSafe for ProgressReader<R> where
R: RefUnwindSafe, [src]
R: RefUnwindSafe,
impl<R> Send for ProgressReader<R> where
R: Send, [src]
R: Send,
impl<R> Sync for ProgressReader<R> where
R: Sync, [src]
R: Sync,
impl<R> Unpin for ProgressReader<R> where
R: Unpin, [src]
R: Unpin,
impl<R> UnwindSafe for ProgressReader<R> where
R: UnwindSafe, [src]
R: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Erased for T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,