pub struct ProgressBar<T: Write> {
    pub total: u64,
    pub is_finish: bool,
    pub is_multibar: bool,
    pub show_bar: bool,
    pub show_speed: bool,
    pub show_percent: bool,
    pub show_counter: bool,
    pub show_time_left: bool,
    pub show_tick: bool,
    pub show_message: bool,
    /* private fields */
}

Fields

total: u64is_finish: boolis_multibar: boolshow_bar: boolshow_speed: boolshow_percent: boolshow_counter: boolshow_time_left: boolshow_tick: boolshow_message: bool

Implementations

Create a new ProgressBar with default configuration.

Examples
use std::thread;
use pbr::{ProgressBar, Units};

let count = 1000;
let mut pb = ProgressBar::new(count);
pb.set_units(Units::Bytes);

for _ in 0..count {
   pb.inc();
   thread::sleep_ms(100);
}

Create a new ProgressBar with default configuration but pass an arbitrary writer.

Examples
use std::thread;
use std::io::stderr;
use pbr::{ProgressBar, Units};

let count = 1000;
let mut pb = ProgressBar::on(stderr(), count);
pb.set_units(Units::Bytes);

for _ in 0..count {
   pb.inc();
   thread::sleep_ms(100);
}

Set units, default is simple numbers

Examples
use pbr::{ProgressBar, Units};

let n_bytes = 100;
let mut pb = ProgressBar::new(n_bytes);
pb.set_units(Units::Bytes);

Set custom format to the drawing bar, default is [=>-]

Examples
let mut pb = ProgressBar::new(...);
pb.format("[=>_]");

Set message to display in the prefix, call with “” to stop printing a message.

All newlines are replaced with spaces.

Examples
let mut pb = ProgressBar::new(20);

for x in 0..20 {
   match x {
      0 => pb.message("Doing 1st Quarter"),
      5 => pb.message("Doing 2nd Quarter"),
      10 => pb.message("Doing 3rd Quarter"),
      15 => pb.message("Doing 4th Quarter"),
   }
   pb.inc().
}

Set tick format for the progressBar, default is \|/-

Format is not limited to 4 characters, any string can be used as a tick format (the tick will successively take the value of each char but won’t loop backwards).

Examples
let mut pb = ProgressBar::new(...);
pb.tick_format("▀▐▄▌")

Set width, or None for default.

Examples
let mut pb = ProgressBar::new(...);
pb.set_width(Some(80));

Set max refresh rate, above which the progress bar will not redraw, or None for none.

Examples
let mut pb = ProgressBar::new(...);
pb.set_max_refresh_rate(Some(Duration::from_millis(100)));

Update progress bar even though no progress are made Useful to see if a program is bricked or just not doing any progress.

tick is not needed with add or inc as performed operation take place in draw function.

Examples
let mut pb = ProgressBar::new(...);
pb.inc();
for _ in ... {
   ...do something
   pb.tick();
}
pb.finish();

Add to current value

Examples
use pbr::ProgressBar;

let mut pb = ProgressBar::new(10);
pb.add(5);
pb.finish();

Manually set the current value of the bar

Examples
use pbr::ProgressBar;

let mut pb = ProgressBar::new(10);
pb.set(8);
pb.finish();

Increment current value

Resets the start time to now

Calling finish manually will set current to total and draw the last time

Call finish and write string s that will replace the progress bar.

Call finish and write string s below the progress bar.

If the ProgressBar is part of MultiBar instance, you should use finish_print to print message.

Trait Implementations

Write a buffer into this writer, returning how many bytes were written. Read more

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

Like write, except that it writes from a slice of buffers. Read more

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Writer has an efficient write_vectored implementation. Read more

Attempts to write an entire buffer into this writer. Read more

🔬 This is a nightly-only experimental API. (write_all_vectored)

Attempts to write multiple buffers into this writer. Read more

Writes a formatted string into this writer, returning any error encountered. Read more

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

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.