use std::{
io,
time::Duration,
};
use super::{
ProgressReporter,
WriterProgressReporter,
};
#[derive(Debug)]
pub struct ConsoleProgressReporter {
inner: WriterProgressReporter<io::Stdout>,
}
impl ConsoleProgressReporter {
#[inline]
pub fn new() -> Self {
Self::default()
}
}
impl Default for ConsoleProgressReporter {
fn default() -> Self {
Self {
inner: WriterProgressReporter::from_writer(io::stdout()),
}
}
}
impl ProgressReporter for ConsoleProgressReporter {
fn start(&self, total_count: usize) {
self.inner.start(total_count);
}
fn process(
&self,
total_count: usize,
active_count: usize,
completed_count: usize,
elapsed: Duration,
) {
self.inner
.process(total_count, active_count, completed_count, elapsed);
}
fn finish(&self, total_count: usize, elapsed: Duration) {
self.inner.finish(total_count, elapsed);
}
}