pub struct MultiStageTracker { /* private fields */ }Expand description
多阶段进度追踪器
用于追踪由多个阶段组成的复杂任务。
§Example
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); // 下载 50%
assert!((tracker.total_percentage() - 15.0).abs() < 0.1);
// 完成第一阶段,开始第二阶段
tracker.finish_stage(0);
tracker.advance(1, 25); // 解压 50%Implementations§
Source§impl MultiStageTracker
impl MultiStageTracker
Sourcepub fn with_config(stages: Vec<Stage>, config: ProgressConfig) -> Self
pub fn with_config(stages: Vec<Stage>, config: ProgressConfig) -> Self
使用自定义配置创建
Sourcepub fn stage_count(&self) -> usize
pub fn stage_count(&self) -> usize
获取阶段数量
Sourcepub fn current_stage_index(&self) -> usize
pub fn current_stage_index(&self) -> usize
获取当前阶段索引
Sourcepub fn current_stage(&self) -> &Stage
pub fn current_stage(&self) -> &Stage
获取当前阶段信息
Sourcepub fn set_stage_message(&self, stage_index: usize, message: impl Into<String>)
pub fn set_stage_message(&self, stage_index: usize, message: impl Into<String>)
设置指定阶段的消息
Sourcepub fn finish_stage(&self, stage_index: usize)
pub fn finish_stage(&self, stage_index: usize)
完成指定阶段
Sourcepub fn total_percentage(&self) -> f64
pub fn total_percentage(&self) -> f64
获取总体进度百分比
Sourcepub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
是否全部完成
Sourcepub fn subscribe(&self) -> Receiver<ProgressEvent>
pub fn subscribe(&self) -> Receiver<ProgressEvent>
订阅总进度更新
Sourcepub fn stage_tracker(&self, index: usize) -> Option<&ProgressTracker>
pub fn stage_tracker(&self, index: usize) -> Option<&ProgressTracker>
获取指定阶段的追踪器
Auto Trait Implementations§
impl !Freeze for MultiStageTracker
impl !RefUnwindSafe for MultiStageTracker
impl Send for MultiStageTracker
impl Sync for MultiStageTracker
impl Unpin for MultiStageTracker
impl UnwindSafe for MultiStageTracker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more