[][src]Struct cursive::views::ProgressBar

pub struct ProgressBar { /* fields omitted */ }

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

impl ProgressBar[src]

pub fn new() -> ProgressBar[src]

Creates a new progress bar.

Default values:

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

pub fn with_value(self, value: Counter) -> ProgressBar[src]

Sets the value to follow.

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

pub fn start<F>(&mut self, f: F) where
    F: 'static + Send + FnOnce(Counter), 
[src]

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.

pub fn with_task<F>(self, task: F) -> ProgressBar where
    F: 'static + Send + FnOnce(Counter), 
[src]

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

Chainable variant.

pub fn with_label<F>(self, label_maker: F) -> ProgressBar where
    F: 'static + Fn(usize, (usize, usize)) -> String
[src]

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)
}

pub fn min(self, min: usize) -> ProgressBar[src]

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.

pub fn max(self, max: usize) -> ProgressBar[src]

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.

pub fn range(self, min: usize, max: usize) -> ProgressBar[src]

Sets the min and max range for the value.

If min > max, swap the two values.

pub fn set_value(&mut self, value: usize)[src]

Sets the current value.

Value is clamped between min and max.

pub fn set_color<C>(&mut self, color: C) where
    C: Into<ColorType>, 
[src]

Sets the color style.

The default color is PaletteColor::Highlight.

pub fn with_color<C>(self, color: C) -> ProgressBar where
    C: Into<ColorType>, 
[src]

Sets the color style.

Chainable variant of set_color.

Trait Implementations

impl Default for ProgressBar[src]

impl View for ProgressBar[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AnyView for T where
    T: View
[src]

fn as_any(&self) -> &(dyn Any + 'static)[src]

Downcast self to a Any.

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)[src]

Downcast self to a mutable Any.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Erased for T

impl<T> Finder for T where
    T: View
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoBoxedView for T where
    T: View
[src]

impl<T> Nameable for T where
    T: View
[src]

impl<T> Resizable for T where
    T: View
[src]

impl<T> Scrollable for T where
    T: View
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> View for T where
    T: ViewWrapper
[src]

impl<T> With for T[src]