From: Ian Jackson Date: Mon, 17 May 2021 10:59:26 +0000 (+0100) Subject: progress: Provide termprogress::clear() X-Git-Tag: otter-0.6.0~208 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c1b7a6474be421ec13afdce18f972a13f13e8d92;p=otter.git progress: Provide termprogress::clear() Signed-off-by: Ian Jackson --- diff --git a/src/termprogress.rs b/src/termprogress.rs index 8fa4b5c1..db6f5a4f 100644 --- a/src/termprogress.rs +++ b/src/termprogress.rs @@ -11,6 +11,7 @@ type Col = usize; pub trait Reporter { fn report(&mut self, pi: &ProgressInfo<'_>); + fn clear(&mut self); } pub struct NullReporter; @@ -18,6 +19,7 @@ pub struct NullReporter; #[allow(unused_variables)] impl Reporter for NullReporter { fn report(&mut self, pi: &ProgressInfo<'_>) { } + fn clear(&mut self) { } } pub fn new() -> Box { @@ -99,6 +101,11 @@ impl Reporter for TermReporter { } self.term.flush().unwrap_or(()); } + + fn clear(&mut self) { + self.clear_line(); + self.term.flush().unwrap_or(()); + } } impl TermReporter { @@ -149,7 +156,6 @@ impl TermReporter { impl Drop for TermReporter { fn drop(&mut self) { - self.clear_line(); - self.term.flush().unwrap_or(()); + self.clear(); } }