pub struct MultiProgress { /* private fields */ }Expand description
Manages multiple progress bars from different threads
Implementations§
Source§impl MultiProgress
impl MultiProgress
Sourcepub fn new() -> MultiProgress
pub fn new() -> MultiProgress
Creates a new multi progress object.
Progress bars added to this object by default draw directly to stderr, and refresh a maximum of 15 times a second. To change the refresh rate set the draw target to one with a different refresh rate.
Sourcepub fn with_draw_target(draw_target: ProgressDrawTarget) -> MultiProgress
pub fn with_draw_target(draw_target: ProgressDrawTarget) -> MultiProgress
Creates a new multi progress object with the given draw target.
Sourcepub fn set_draw_target(&self, target: ProgressDrawTarget)
pub fn set_draw_target(&self, target: ProgressDrawTarget)
Sets a different draw target for the multiprogress bar.
Sourcepub fn set_move_cursor(&self, move_cursor: bool)
pub fn set_move_cursor(&self, move_cursor: bool)
Set whether we should try to move the cursor when possible instead of clearing lines.
This can reduce flickering, but do not enable it if you intend to change the number of progress bars.
Sourcepub fn add(&self, pb: ProgressBar) -> ProgressBar
pub fn add(&self, pb: ProgressBar) -> ProgressBar
Adds a progress bar.
The progress bar added will have the draw target changed to a
remote draw target that is intercepted by the multi progress
object overriding custom ProgressDrawTarget settings.
Sourcepub fn insert(&self, index: usize, pb: ProgressBar) -> ProgressBar
pub fn insert(&self, index: usize, pb: ProgressBar) -> ProgressBar
Inserts a progress bar.
The progress bar inserted at position index will have the draw
target changed to a remote draw target that is intercepted by the
multi progress object overriding custom ProgressDrawTarget settings.
If index >= MultiProgressState::objects.len(), the progress bar
is added to the end of the list.
Sourcepub fn remove(&self, pb: &ProgressBar)
pub fn remove(&self, pb: &ProgressBar)
Removes a progress bar.
The progress bar is removed only if it was previously inserted or added
by the methods MultiProgress::insert or MultiProgress::add.
If the passed progress bar does not satisfy the condition above,
the remove method does nothing.
Sourcepub fn join(&self) -> Result<(), Error>
pub fn join(&self) -> Result<(), Error>
Waits for all progress bars to report that they are finished.
You need to call this as this will request the draw instructions from the remote progress bars. Not calling this will deadlock your program.
Sourcepub fn join_and_clear(&self) -> Result<(), Error>
pub fn join_and_clear(&self) -> Result<(), Error>
Works like join but clears the progress bar in the end.
Trait Implementations§
Source§impl Debug for MultiProgress
impl Debug for MultiProgress
Source§impl Default for MultiProgress
impl Default for MultiProgress
Source§fn default() -> MultiProgress
fn default() -> MultiProgress
impl Sync for MultiProgress
Auto Trait Implementations§
impl !Freeze for MultiProgress
impl RefUnwindSafe for MultiProgress
impl Send for MultiProgress
impl Unpin for MultiProgress
impl UnwindSafe for MultiProgress
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more