💤
The progress bar with sane defaults that doesn't slow down your loops. Inspired by tqdm.
[]
= { = "0.1" }
Features
- Practical defaults
- Seamless integration with iterators and streams
- If possible,
zzzinfers the target size fromsize_hint()
- If possible,
- Automagically determines and updates a good printing frequency
- Very low overhead: doesn't slow down your loop, pretty much no matter how simple the loop body. On average a ...
!Syncprogress bar update is 4 instructions (on average, 3 CPU cycles on Skylake)Syncprogress bar update is also 4 instructions (on average, 38 CPU cycles on Skylake)
Cargo Features
streams: Enables support for.progress()on async streams (futures::streams::Stream)
Usage examples
Adding a progress bar to an iterator:
use ProgressBarIterExt as _;
// vvvvvvvv
for _ in .into_iter.progress
Manually creating and advancing a progress bar:
use ProgressBar;
let mut pb = with_target;
for i in 0..1234