From f92a35f21898e08811e7e2e71b594c873f297ba8 Mon Sep 17 00:00:00 2001 From: mibac138 <5672750+mibac138@users.noreply.github.com> Date: Fri, 29 Mar 2019 19:56:37 +0100 Subject: [PATCH] Add ProgressDrawTarget::std{out,err}_with_hz convenience functions --- src/progress.rs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/progress.rs b/src/progress.rs index 67c4a937..e1875310 100644 --- a/src/progress.rs +++ b/src/progress.rs @@ -57,7 +57,7 @@ impl ProgressDrawTarget { /// /// For more information see `ProgressDrawTarget::to_term`. pub fn stdout() -> ProgressDrawTarget { - ProgressDrawTarget::to_term(Term::buffered_stdout(), Some(15)) + ProgressDrawTarget::to_term(Term::buffered_stdout(), 15) } /// Draw to a buffered stderr terminal at a max of 15 times a second. @@ -65,7 +65,21 @@ impl ProgressDrawTarget { /// This is the default draw target for progress bars. For more /// information see `ProgressDrawTarget::to_term`. pub fn stderr() -> ProgressDrawTarget { - ProgressDrawTarget::to_term(Term::buffered_stderr(), Some(15)) + ProgressDrawTarget::to_term(Term::buffered_stderr(), 15) + } + + /// Draw to a buffered stdout terminal at a max of `refresh_rate` times a second. + /// + /// For more information see `ProgressDrawTarget::to_term`. + pub fn stdout_with_hz(refresh_rate: u64) -> ProgressDrawTarget { + ProgressDrawTarget::to_term(Term::buffered_stdout(), refresh_rate) + } + + /// Draw to a buffered stderr terminal at a max of `refresh_rate` times a second. + /// + /// For more information see `ProgressDrawTarget::to_term`. + pub fn stderr_with_hz(refresh_rate: u64) -> ProgressDrawTarget { + ProgressDrawTarget::to_term(Term::buffered_stderr(), refresh_rate) } /// Draw to a buffered stdout terminal without max framerate. @@ -96,8 +110,12 @@ impl ProgressDrawTarget { /// terminal is not user attended the entire progress bar will be /// hidden. This is done so that piping to a file will not produce /// useless escape codes in that file. - pub fn to_term(term: Term, refresh_rate: Option) -> ProgressDrawTarget { - let rate = refresh_rate.map(|x| Duration::from_millis(1000 / x)); + pub fn to_term( + term: Term, + refresh_rate: impl Into>, + ) -> ProgressDrawTarget { + let rate = refresh_rate.into() + .map(|x| Duration::from_millis(1000 / x)); ProgressDrawTarget { kind: ProgressDrawTargetKind::Term(term, None, rate), }