| Crates.io | unistore-progress |
| lib.rs | unistore-progress |
| version | 0.1.0 |
| created_at | 2026-01-20 11:03:57.690876+00 |
| updated_at | 2026-01-20 11:03:57.690876+00 |
| description | Progress tracking capability for UniStore |
| homepage | https://github.com/yangbo1317/unistore |
| repository | https://github.com/yangbo1317/unistore |
| max_upload_size | |
| id | 2056356 |
| size | 47,408 |
进度报告能力 - UniStore 能力生态的一部分。
use unistore_progress::{ProgressTracker, ProgressEvent};
// 创建进度追踪器
let tracker = ProgressTracker::new(100);
// 订阅进度更新
let mut rx = tracker.subscribe();
tokio::spawn(async move {
while let Ok(event) = rx.recv().await {
println!("进度: {:.1}% - {}", event.percentage(), event.message());
}
});
// 更新进度
tracker.advance(10);
tracker.set_message("正在处理文件...");
tracker.advance(40);
// 完成
tracker.finish();
use unistore_progress::ProgressTracker;
async fn process_files(files: Vec<PathBuf>) -> Result<(), Error> {
let tracker = ProgressTracker::new(files.len() as u64);
for file in files {
tracker.set_message(format!("处理: {}", file.display()));
process_file(&file).await?;
tracker.advance(1);
}
tracker.finish();
Ok(())
}
MIT OR Apache-2.0