summaryrefslogtreecommitdiff
path: root/vendor/indicatif/examples/steady.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/indicatif/examples/steady.rs')
-rw-r--r--vendor/indicatif/examples/steady.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/indicatif/examples/steady.rs b/vendor/indicatif/examples/steady.rs
new file mode 100644
index 0000000..4515ce9
--- /dev/null
+++ b/vendor/indicatif/examples/steady.rs
@@ -0,0 +1,50 @@
+use std::{
+ thread::sleep,
+ time::{Duration, Instant},
+};
+
+use indicatif::{ProgressBar, ProgressIterator, ProgressStyle};
+
+fn main() {
+ let iterations = 1000;
+ // Set the array with all the blocksizes to test
+ let blocksizes: [usize; 7] = [16, 64, 256, 1024, 4096, 16384, 65536];
+
+ // Set the array with all the durations to save
+ let mut elapsed: [Duration; 7] = [Duration::ZERO; 7];
+
+ for (pos, blocksize) in blocksizes.iter().enumerate() {
+ // Set up the style for the progressbar
+ let sty = ProgressStyle::default_spinner()
+ .tick_strings(&[
+ "▹▹▹▹▹",
+ "▸▹▹▹▹",
+ "▹▸▹▹▹",
+ "▹▹▸▹▹",
+ "▹▹▹▸▹",
+ "▹▹▹▹▸",
+ "▪▪▪▪▪",
+ ])
+ .template("{prefix} {pos:>4}/{len:4} Iterations per second: {per_sec} {spinner} {msg}")
+ .unwrap();
+
+ // Set up the progress bar and apply the style
+ let pb = ProgressBar::new(iterations);
+ pb.set_style(sty);
+ pb.enable_steady_tick(Duration::from_millis(120));
+ pb.set_prefix(format!("Doing test with Blocksize {:5?}:", blocksize));
+
+ // Iterate for the given number of iterations
+ // for _ in (0..iterations) {
+ for _ in (0..iterations).progress_with(pb) {
+ // pb.inc(1);
+ // Take a timestamp for timemeasurement later on
+ let now = Instant::now();
+ sleep(Duration::from_millis(1));
+ // Save the elapsed time for later evaluation
+ elapsed[pos] += now.elapsed();
+ }
+
+ // pb.finish_using_style();
+ }
+}