Crate unistore_progress

Crate unistore_progress 

Source
Expand description

§unistore-progress

进度报告能力 - UniStore 能力生态的一部分。

§功能特性

  • 进度追踪: 追踪任务完成百分比
  • ETA 估算: 基于历史速率估算剩余时间
  • 消息更新: 支持动态更新进度消息
  • 订阅机制: 观察者模式,支持多个监听者
  • 多阶段支持: 支持嵌套进度(大任务包含小任务)

§快速开始

use unistore_progress::ProgressTracker;

// 创建进度追踪器(100 个任务)
let tracker = ProgressTracker::new(100);

// 更新进度
tracker.advance(10);
tracker.set_message("正在处理...");

// 获取当前状态
assert_eq!(tracker.current(), 10);
assert!((tracker.percentage() - 10.0).abs() < 0.001);

// 完成
tracker.finish();
assert!(tracker.is_finished());

§多阶段进度

use unistore_progress::{MultiStageTracker, Stage};

let tracker = MultiStageTracker::new(vec![
    Stage { name: "下载".into(), weight: 0.3, total: 100 },
    Stage { name: "解压".into(), weight: 0.2, total: 50 },
    Stage { name: "安装".into(), weight: 0.5, total: 200 },
]);

// 第一阶段进度
tracker.advance(0, 50);

Structs§

MultiStageTracker
多阶段进度追踪器
ProgressConfig
进度追踪器配置
ProgressEvent
进度事件
ProgressReceiver
Receiving-half of the broadcast channel.
ProgressTracker
进度追踪器
Stage
阶段信息

Enums§

ProgressError
进度追踪错误

Type Aliases§

ProgressResult
进度追踪结果类型别名