3个版本
0.1.2 | 2021年10月7日 |
---|---|
0.1.1 | 2021年8月19日 |
0.1.0 | 2021年8月19日 |
#59 in #transfer
16KB
190 行
传输进度
一个小的Rust crate,允许您监控读取器和写入器之间传输的速度、进度和估计完成时间。
内部,为每个传输启动一个新线程,并使用progress-streams crate进行监控。
示例
use std::{
fs::File,
io::{self, Read},
};
use transfer_progress::Transfer;
fn main() -> io::Result<()> {
let reader = File::open("/dev/urandom")?.take(1024 * 1024 * 1024); // 1 GiB
let writer = io::sink();
// Create the transfer monitor
let transfer = Transfer::new(reader, writer);
while !transfer.is_complete() {
std::thread::sleep(std::time::Duration::from_secs(1));
// {:#} makes Transfer use SI units (MiB instead of MB)
println!("{:#}", transfer);
}
// Catch any errors and retrieve the reader and writer
let (_reader, _writer) = transfer.finish()?;
Ok(())
}
依赖项
~33KB