use std::thread; use std::time::Duration; use indicatif::{ProgressBar, ProgressIterator, ProgressStyle}; fn main() { // Default styling, attempt to use Iterator::size_hint to count input size for _ in (0..1000).progress() { // ... thread::sleep(Duration::from_millis(5)); } // Provide explicit number of elements in iterator for _ in (0..1000).progress_count(1000) { // ... thread::sleep(Duration::from_millis(5)); } // Provide a custom bar style let pb = ProgressBar::new(1000); pb.set_style( ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise}] [{bar:40.cyan/blue}] ({pos}/{len}, ETA {eta})", ) .unwrap(), ); for _ in (0..1000).progress_with(pb) { // ... thread::sleep(Duration::from_millis(5)); } }