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.3
clamped to[0, 1]
prints[=====>------------]
.let mut progress_bar = new; progress_bar.set_len; progress_bar.set; println!;
-
Printing value
4
mapped 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
42
successes, where60
is the goal and130
attempts have been made,[============>-----] (42 / 60 # 130)
is printed. Adding trials may be handier usingbool
s.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
5
characters.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 ~0s
A line is printed every time when another
10 %
of the goal is reached. Please note, that the progress-bar starts with13
and hence needs113
attempts in total.
Setup and usage
Just add progressing = '3'
to the dependencies in Cargo.toml
.
Please refer to the examples for some more examples.