Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
pub trait Reporter {
fn report(&mut self, pi: &ProgressInfo<'_>);
+ fn clear(&mut self);
}
pub struct NullReporter;
#[allow(unused_variables)]
impl Reporter for NullReporter {
fn report(&mut self, pi: &ProgressInfo<'_>) { }
+ fn clear(&mut self) { }
}
pub fn new() -> Box<dyn Reporter> {
}
self.term.flush().unwrap_or(());
}
+
+ fn clear(&mut self) {
+ self.clear_line();
+ self.term.flush().unwrap_or(());
+ }
}
impl TermReporter {
impl Drop for TermReporter {
fn drop(&mut self) {
- self.clear_line();
- self.term.flush().unwrap_or(());
+ self.clear();
}
}