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.
cur
should be how far along the progress is.max
is the maximum value for the progress bar.msg
is 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.
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>
§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>
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