Skip to main content

rusty_cat/
transfer_status.rs

1use crate::error::MeowError;
2
3#[derive(Clone, Debug, Default, PartialEq, Eq)]
4pub enum TransferStatus {
5    #[default]
6    None,
7
8    /// 待上传/下载
9    Pending,
10
11    /// 上传中/下载中
12    Transmission,
13
14    /// 上传/下载暂停
15    Paused,
16
17    /// 上传/下载完成
18    Complete,
19
20    /// 上传/下载出错
21    Failed(MeowError),
22
23    /// 上传/下载取消
24    Canceled,
25}
26
27impl TransferStatus {
28    pub fn as_i32(&self) -> i32 {
29        match self {
30            TransferStatus::Pending => 0,
31            TransferStatus::Transmission => 1,
32            TransferStatus::Paused => 2,
33            TransferStatus::Complete => 3,
34            TransferStatus::Failed(_) => 4,
35            TransferStatus::Canceled => 5,
36            TransferStatus::None => -1,
37        }
38    }
39}