Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
/pbPublic

Console progress bar for Rust

License

NotificationsYou must be signed in to change notification settings

a8m/pb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest versionLicenseDocsBuild StatusGitter

Console progress bar for Rust Inspired frompb, support andtested on MacOS, Linux and Windows

Screenshot

Documentation

Examples

  1. 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");}
  1. 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();}
  1. 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");}

License

MIT


[8]ページ先頭

©2009-2025 Movatter.jp