- Notifications
You must be signed in to change notification settings - Fork61
Console progress bar for Rust
License
NotificationsYou must be signed in to change notification settings
a8m/pb
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Console progress bar for Rust Inspired frompb, support andtested on MacOS, Linux and Windows
- simple example
use pbr::ProgressBar;use std::thread;fnmain(){let count =1000;letmut pb =ProgressBar::new(count); pb.format("╢▌▌░╟");for _in0..count{ pb.inc(); thread::sleep_ms(200);} pb.finish_print("done");}
- MultiBar example. see full examplehere
use std::thread;use pbr::MultiBar;use std::time::Duration;fnmain(){letmut mb =MultiBar::new();let count =100; mb.println("Application header:");letmut p1 = mb.create_bar(count);let _ = thread::spawn(move ||{for _in0..count{ p1.inc(); thread::sleep(Duration::from_millis(100));}// notify the multibar that this bar finished. p1.finish();}); mb.println("add a separator between the two bars");letmut p2 = mb.create_bar(count*2);let _ = thread::spawn(move ||{for _in0..count*2{ p2.inc(); thread::sleep(Duration::from_millis(100));}// notify the multibar that this bar finished. p2.finish();});// start listen to all bars changes.// this is a blocking operation, until all bars will finish.// to ignore blocking, you can run it in a different thread. mb.listen();}
- Broadcast writing (simple file copying)
#![feature(io)]use std::io::copy;use std::io::prelude::*;use std::fs::File;use pbr::{ProgressBar,Units};fnmain(){letmut file =File::open("/usr/share/dict/words").unwrap();let n_bytes = file.metadata().unwrap().len()asusize;letmut pb =ProgressBar::new(n_bytes); pb.set_units(Units::Bytes);letmut handle =File::create("copy-words").unwrap().broadcast(&mut pb);copy(&mut file,&mut handle).unwrap(); pb.finish_print("done");}
MIT
About
Console progress bar for Rust
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.