unistore_progress/
error.rs

1//! 【错误类型】- 进度追踪错误定义
2//!
3//! 职责:
4//! - 定义进度追踪相关的错误类型
5//! - 提供错误转换
6
7use thiserror::Error;
8
9/// 进度追踪错误
10#[derive(Debug, Error)]
11pub enum ProgressError {
12    /// 进度已完成,无法继续操作
13    #[error("进度已完成")]
14    AlreadyFinished,
15
16    /// 进度值超出范围
17    #[error("进度值超出范围: {current} > {total}")]
18    OutOfRange {
19        /// 当前值
20        current: u64,
21        /// 总数
22        total: u64,
23    },
24
25    /// 订阅通道已关闭
26    #[error("订阅通道已关闭")]
27    ChannelClosed,
28
29    /// 无效的总数(必须 > 0)
30    #[error("无效的总数: {0}(必须大于 0)")]
31    InvalidTotal(u64),
32}
33
34/// 进度追踪结果类型别名
35pub type ProgressResult<T> = Result<T, ProgressError>;