Struct hersir::controller::ProgressBarController
source · pub struct ProgressBarController {
progress_bar: ProgressBar,
prefix: String,
}
Fields§
§progress_bar: ProgressBar
§prefix: String
Implementations§
source§impl ProgressBarController
impl ProgressBarController
pub fn new(progress_bar: ProgressBar, prefix: String) -> Self
pub fn log_info<M>(&self, msg: M)where M: Display,
pub fn log_err<M>(&self, msg: M)where M: Display,
pub fn log<L, M>(&self, lvl: L, msg: M)where L: Display, M: Display,
pub fn finish_with_message<M>(&self, msg: M)where M: Display,
Methods from Deref<Target = ProgressBar>§
pub fn set_style(&self, style: ProgressStyle)
pub fn set_style(&self, style: ProgressStyle)
Overrides the stored style.
This does not redraw the bar. Call tick
to force it.
pub fn enable_steady_tick(&self, ms: u64)
pub fn enable_steady_tick(&self, ms: u64)
Spawns a background thread to tick the progress bar.
When this is enabled a background thread will regularly tick the progress back in the given interval (milliseconds). This is useful to advance progress bars that are very slow by themselves.
When steady ticks are enabled calling .tick()
on a progress
bar does not do anything.
pub fn disable_steady_tick(&self)
pub fn disable_steady_tick(&self)
Undoes enable_steady_tick
.
pub fn set_draw_delta(&self, n: u64)
pub fn set_draw_delta(&self, n: u64)
Limit redrawing of progress bar to every n
steps. Defaults to 0.
By default, the progress bar will redraw whenever its state advances. This setting is helpful in situations where the overhead of redrawing the progress bar dominates the computation whose progress is being reported.
If n
is greater than 0, operations that change the progress bar such
as .tick()
, .set_message()
and .set_length()
will no longer cause
the progress bar to be redrawn, and will only be shown once the
position advances by n
steps.
let n = 1_000_000;
let pb = ProgressBar::new(n);
pb.set_draw_delta(n / 100); // redraw every 1% of additional progress
Note that ProgressDrawTarget
may impose additional buffering of redraws.
pub fn tick(&self)
pub fn tick(&self)
Manually ticks the spinner or progress bar.
This automatically happens on any other change to a progress bar.
A quick convenience check if the progress bar is hidden.
pub fn is_finished(&self) -> bool
pub fn println<I>(&self, msg: I)where
I: Into<String>,
pub fn println<I>(&self, msg: I)where I: Into<String>,
Print a log line above the progress bar.
If the progress bar was added to a MultiProgress
, the log line will be
printed above all other progress bars.
Note that if the progress bar is hidden (which by default happens if the progress bar is redirected into a file) println will not do anything either.
pub fn set_position(&self, pos: u64)
pub fn set_position(&self, pos: u64)
Sets the position of the progress bar.
pub fn set_length(&self, len: u64)
pub fn set_length(&self, len: u64)
Sets the length of the progress bar.
pub fn inc_length(&self, delta: u64)
pub fn inc_length(&self, delta: u64)
Increase the length of the progress bar.
pub fn set_prefix(&self, prefix: &str)
pub fn set_prefix(&self, prefix: &str)
Sets the current prefix of the progress bar.
For the prefix to be visible, {prefix}
placeholder
must be present in the template (see ProgressStyle
).
pub fn set_message(&self, msg: &str)
pub fn set_message(&self, msg: &str)
Sets the current message of the progress bar.
For the message to be visible, {msg}
placeholder
must be present in the template (see ProgressStyle
).
pub fn downgrade(&self) -> WeakProgressBar
pub fn downgrade(&self) -> WeakProgressBar
Creates a new weak reference to this ProgressBar
.
pub fn reset_eta(&self)
pub fn reset_eta(&self)
Resets the ETA calculation.
This can be useful if progress bars make a huge jump or were paused for a prolonged time.
pub fn reset_elapsed(&self)
pub fn reset_elapsed(&self)
Resets elapsed time
pub fn reset(&self)
pub fn finish(&self)
pub fn finish(&self)
Finishes the progress bar and leaves the current message.
pub fn finish_at_current_pos(&self)
pub fn finish_at_current_pos(&self)
Finishes the progress bar at current position and leaves the current message.
pub fn finish_with_message(&self, msg: &str)
pub fn finish_with_message(&self, msg: &str)
Finishes the progress bar and sets a message.
For the message to be visible, {msg}
placeholder
must be present in the template (see ProgressStyle
).
pub fn finish_and_clear(&self)
pub fn finish_and_clear(&self)
Finishes the progress bar and completely clears it.
pub fn abandon(&self)
pub fn abandon(&self)
Finishes the progress bar and leaves the current message and progress.
pub fn abandon_with_message(&self, msg: &str)
pub fn abandon_with_message(&self, msg: &str)
Finishes the progress bar and sets a message, and leaves the current progress.
For the message to be visible, {msg}
placeholder
must be present in the template (see ProgressStyle
).
pub fn set_draw_target(&self, target: ProgressDrawTarget)
pub fn set_draw_target(&self, target: ProgressDrawTarget)
Sets a different draw target for the progress bar.
This can be used to draw the progress bar to stderr for instance:
let pb = ProgressBar::new(100);
pb.set_draw_target(ProgressDrawTarget::stderr());
pub fn wrap_iter<It>(&self, it: It) -> ProgressBarIter<It>where
It: Iterator,
pub fn wrap_iter<It>(&self, it: It) -> ProgressBarIter<It>where It: Iterator,
Wraps an iterator with the progress bar.
let v = vec![1, 2, 3];
let pb = ProgressBar::new(3);
for item in pb.wrap_iter(v.iter()) {
// ...
}
pub fn wrap_read<R>(&self, read: R) -> ProgressBarWrap<R>where
R: Read,
pub fn wrap_read<R>(&self, read: R) -> ProgressBarWrap<R>where R: Read,
Wraps a Reader with the progress bar.
let source = File::open("work.txt")?;
let mut target = File::create("done.txt")?;
let pb = ProgressBar::new(source.metadata()?.len());
io::copy(&mut pb.wrap_read(source), &mut target);
pub fn wrap_write<W>(&self, write: W) -> ProgressBarWrap<W>where
W: Write,
pub fn wrap_write<W>(&self, write: W) -> ProgressBarWrap<W>where W: Write,
Wraps a Writer with the progress bar.
let mut source = File::open("work.txt")?;
let target = File::create("done.txt")?;
let pb = ProgressBar::new(source.metadata()?.len());
io::copy(&mut source, &mut pb.wrap_write(target));
pub fn position(&self) -> u64
pub fn length(&self) -> u64
Trait Implementations§
source§impl Clone for ProgressBarController
impl Clone for ProgressBarController
source§fn clone(&self) -> ProgressBarController
fn clone(&self) -> ProgressBarController
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl RefUnwindSafe for ProgressBarController
impl Send for ProgressBarController
impl Sync for ProgressBarController
impl Unpin for ProgressBarController
impl UnwindSafe for ProgressBarController
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request