pub struct ProgressBar { /* private fields */ }
Expand description

Animated bar showing a progress value.

This bar has an internal counter, and adapts the length of the displayed bar to the relative position of the counter between a minimum and maximum values.

It also prints a customizable text in the center of the bar, which defaults to the progression percentage.

The bar defaults to the current theme’s highlight color, but that can be customized.

Example

let bar = ProgressBar::new().with_task(|counter| {
    // This closure is called in parallel.
    for _ in 0..100 {
        // Here we can communicate some
        // advancement back to the bar.
        counter.tick(1);
    }
});

Implementations

Creates a new progress bar.

Default values:

  • min: 0
  • max: 100
  • value: 0

Sets the value to follow.

Use this to manually control the progress to display by directly modifying the value pointed to by value.

Starts a function in a separate thread, and monitor the progress.

f will be given a Counter to increment the bar’s progress.

This does not reset the value, so it can be called several times to advance the progress in multiple sessions.

Starts a function in a separate thread, and monitor the progress.

Chainable variant.

Sets the label generator.

The given function will be called with (value, (min, max)). Its output will be used as the label to print inside the progress bar.

The default one shows a percentage progress:

fn make_progress(value: usize, (min, max): (usize, usize)) -> String {
    let percent = 101 * (value - min) / (1 + max - min);
    format!("{} %", percent)
}

Sets the label generator.

The given function will be called with (value, (min, max)). Its output will be used as the label to print inside the progress bar.

Sets the minimum value.

When value equals min, the bar is at the minimum level.

If self.min > max, self.min is set to max.

Chainable variant.

Sets the minimum value.

When value equals min, the bar is at the minimum level.

If self.min > max, self.min is set to max.

Sets the maximum value.

When value equals max, the bar is at the maximum level.

If min > self.max, self.max is set to min.

Chainable variant.

Sets the maximum value.

When value equals max, the bar is at the maximum level.

If min > self.max, self.max is set to min.

Sets the min and max range for the value.

If min > max, swap the two values.

Chainable variant.

Sets the min and max range for the value.

If min > max, swap the two values.

Sets the current value.

Value is clamped between min and max.

Sets the value to follow.

Use this to manually control the progress to display by directly modifying the value pointed to by value.

Sets the color style.

The default color is PaletteColor::Highlight.

Sets the color style.

Chainable variant of set_color.

Trait Implementations

Returns the “default value” for a type. Read more

Draws the view with the given printer (includes bounds) and focus. Read more

Called once the size for this view has been decided. Read more

Should return true if the view content changed since the last call to layout(). Read more

Returns the minimum size the view requires with the given restrictions. Read more

Called when an event is received (key press, mouse event, …). Read more

Runs a closure on the view identified by the given selector. Read more

Moves the focus to the view identified by the given selector. Read more

Attempt to give this view the focus. Read more

What part of the view is important and should be visible? Read more

Returns the type of this view. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Downcast self to a Any.

Downcast self to a mutable Any.

Returns a boxed any from a boxed self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Runs a callback on all views identified by sel. Read more

Runs a callback on the view identified by sel. Read more

Convenient method to use call_on with a view::Selector::Name.

Convenient method to find a view wrapped in an NamedView.

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Returns a Box<View>.

Wraps this view into an NamedView with the given id. Read more

Wraps self in a ResizedView with the given size constraints.

Wraps self into a fixed-size ResizedView.

Wraps self into a fixed-width ResizedView.

Wraps self into a fixed-width ResizedView.

Wraps self into a full-screen ResizedView.

Wraps self into a full-width ResizedView.

Wraps self into a full-height ResizedView.

Wraps self into a limited-size ResizedView.

Wraps self into a limited-width ResizedView.

Wraps self into a limited-height ResizedView.

Wraps self into a ResizedView at least sized size.

Wraps self in a ResizedView at least min_width wide.

Wraps self in a ResizedView at least min_height tall.

Should always be Self

Wraps self in a ScrollView.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Calls the given closure and return the result. Read more

Calls the given closure on self.

Calls the given closure on self.

Calls the given closure if condition == true.