1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use crate::error::MeowError;
/// High-level lifecycle state of a transfer task.
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub enum TransferStatus {
/// Initial placeholder state before scheduling.
#[default]
None,
/// Queued and waiting for execution.
Pending,
/// Currently uploading or downloading.
Transmission,
/// Temporarily paused by user operation.
Paused,
/// Finished successfully.
Complete,
/// Failed with an associated error.
Failed(MeowError),
/// Canceled by user or caller.
Canceled,
}
impl TransferStatus {
/// Maps status to an integer code for external integrations.
///
/// Mapping:
/// - `Pending=0`
/// - `Transmission=1`
/// - `Paused=2`
/// - `Complete=3`
/// - `Failed=4`
/// - `Canceled=5`
/// - `None=-1`
///
/// # Examples
///
/// ```no_run
/// use rusty_cat::api::TransferStatus;
///
/// assert_eq!(TransferStatus::Pending.as_i32(), 0);
/// assert_eq!(TransferStatus::Complete.as_i32(), 3);
/// ```
pub fn as_i32(&self) -> i32 {
match self {
TransferStatus::Pending => 0,
TransferStatus::Transmission => 1,
TransferStatus::Paused => 2,
TransferStatus::Complete => 3,
TransferStatus::Failed(_) => 4,
TransferStatus::Canceled => 5,
TransferStatus::None => -1,
}
}
}