pub struct Progress<'gctx> {
state: Option<State<'gctx>>,
}Expand description
CLI progress bar.
The Progress object can be in an enabled or disabled state. When
disabled, calling any of the methods to update it will not display
anything. Disabling is typically done by the user with options such as
--quiet or the term.progress config option.
There are several methods to update the progress bar and to cause it to update its display.
The bar will be removed from the display when the Progress object is
dropped or Progress::clear is called.
The progress bar has built-in rate limiting to avoid updating the display
too fast. It should usually be fine to call Progress::tick as often as
needed, though be cautious if the tick rate is very high or it is
expensive to compute the progress value.
Fields§
§state: Option<State<'gctx>>Implementations§
Source§impl<'gctx> Progress<'gctx>
impl<'gctx> Progress<'gctx>
Sourcepub fn with_style(
name: &str,
style: ProgressStyle,
gctx: &'gctx GlobalContext,
) -> Progress<'gctx>
pub fn with_style( name: &str, style: ProgressStyle, gctx: &'gctx GlobalContext, ) -> Progress<'gctx>
Creates a new progress bar.
The first parameter is the text displayed to the left of the bar, such as “Fetching”.
The progress bar is not displayed until explicitly updated with one if its methods.
The progress bar may be created in a disabled state if the user has
disabled progress display (such as with the --quiet option).
fn new_priv( name: &str, style: ProgressStyle, gctx: &'gctx GlobalContext, ) -> Progress<'gctx>
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
Returns whether or not the progress bar is allowed to be displayed.
Sourcepub fn new(name: &str, gctx: &'gctx GlobalContext) -> Progress<'gctx>
pub fn new(name: &str, gctx: &'gctx GlobalContext) -> Progress<'gctx>
Creates a new Progress with the ProgressStyle::Percentage style.
See Progress::with_style for more information.
Sourcepub fn tick(&mut self, cur: usize, max: usize, msg: &str) -> CargoResult<()>
pub fn tick(&mut self, cur: usize, max: usize, msg: &str) -> CargoResult<()>
Updates the state of the progress bar.
curshould be how far along the progress is.maxis the maximum value for the progress bar.msgis a small piece of text to display at the end of the progress bar. It will be truncated with…if it does not fit on the terminal.
This may not actually update the display if tick is being called too
quickly.
Sourcepub fn tick_now(&mut self, cur: usize, max: usize, msg: &str) -> CargoResult<()>
pub fn tick_now(&mut self, cur: usize, max: usize, msg: &str) -> CargoResult<()>
Updates the state of the progress bar.
This is the same as Progress::tick, but ignores rate throttling
and forces the display to be updated immediately.
This may be useful for situations where you know you aren’t calling
tick too fast, and accurate information is more important than
limiting the console update rate.
Sourcepub fn update_allowed(&mut self) -> bool
pub fn update_allowed(&mut self) -> bool
Returns whether or not updates are currently being throttled.
This can be useful if computing the values for calling the
Progress::tick function may require some expensive work.
Sourcepub fn print_now(&mut self, msg: &str) -> CargoResult<()>
pub fn print_now(&mut self, msg: &str) -> CargoResult<()>
Displays progress without a bar.
The given msg is the text to display after the status message.
Example: Downloading 61 crates, remaining bytes: 28.0 MB
This does not have any rate limit throttling, so be careful about calling it too often.
Sourcepub fn indicate_error(&mut self)
pub fn indicate_error(&mut self)
Sets the progress reporter to the error state.
Auto Trait Implementations§
impl<'gctx> Freeze for Progress<'gctx>
impl<'gctx> RefUnwindSafe for Progress<'gctx>
impl<'gctx> Send for Progress<'gctx>
impl<'gctx> Sync for Progress<'gctx>
impl<'gctx> Unpin for Progress<'gctx>
impl<'gctx> UnwindSafe for Progress<'gctx>
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> 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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 128 bytes