progressing
Look and feel
At first, the trait Baring is needed.
use ;
In the following, different use-cases of the provided progress-bars are presented.
Note, that the examples below use set(...), but add(...) is supported as well.
-
Printing value
0.3clamped to[0, 1]prints[=====>------------].let mut progress_bar = new; progress_bar.set_len; progress_bar.set; println!; -
Printing value
4mapped from[-9, 5]to[0, 1]prints[================>-] (4 / 5).let mut progress_bar = with_range; progress_bar.set_len; progress_bar.set; println!; -
Every bar can be used with a simple time-approximation based on the past process. For a process of this duration, this example would print
[================>-] (4 / 5) ~ 2 min. The only difference is the call oftimed().let mut progress_bar = with_range.timed; progress_bar.set_len; progress_bar.set; println!; -
In case something should be counted and failures may occur, try this example. When counting
42successes, where60is the goal and130attempts have been made,[============>-----] (42 / 60 # 130)is printed. Adding trials may be handier usingbools.let mut progress_bar = from_goal; progress_bar.set_len; progress_bar.set; println!; let is_successful = true; if is_successful else -
You may change a bar's style by setting it to a string of
5characters.let mut progress_bar = new; progress_bar.set_len; progress_bar.set; // different custom styles are possible // prints (----->............) progress_bar.set_style; println!; // prints [##### ] progress_bar.set_style; println!; // prints (#####-------------) progress_bar.set_style; println!; -
Another typical use-case may be printing some, not every progress in a loop.
let mut progress_bar = with_goal.timed; progress_bar.set_len; progress_bar.set; // do the job and show progress for _ in 0..100 println!;will print
[=>................] (10/100) #14 ~8s [===>..............] (20/100) #20 ~7s [=====>............] (30/100) #30 ~6s [=======>..........] (40/100) #40 ~5s [=========>........] (50/100) #50 ~4s [==========>.......] (60/100) #60 ~3s [============>.....] (70/100) #70 ~2s [==============>...] (80/100) #80 ~1s [================>.] (90/100) #90 ~0s [==================] (100/100) #100 ~0s [==================] (100/100) #113 ~0sA line is printed every time when another
10 %of the goal is reached. Please note, that the progress-bar starts with13and hence needs113attempts in total.
Setup and usage
Just add progressing = '3' to the dependencies in Cargo.toml.
Please refer to the examples for some more examples.