taskchampion_lib/
status.rs

1pub use taskchampion::Status;
2
3#[ffizz_header::item]
4#[ffizz(order = 700)]
5/// ***** TCStatus *****
6///
7/// The status of a task, as defined by the task data model.
8///
9/// ```c
10/// #ifdef __cplusplus
11/// typedef enum TCStatus : int32_t {
12/// #else // __cplusplus
13/// typedef int32_t TCStatus;
14/// enum TCStatus {
15/// #endif // __cplusplus
16///   TC_STATUS_PENDING = 0,
17///   TC_STATUS_COMPLETED = 1,
18///   TC_STATUS_DELETED = 2,
19///   TC_STATUS_RECURRING = 3,
20///   // Unknown signifies a status in the task DB that was not
21///   // recognized.
22///   TC_STATUS_UNKNOWN = -1,
23/// #ifdef __cplusplus
24/// } TCStatus;
25/// #else // __cplusplus
26/// };
27/// #endif // __cplusplus
28/// ```
29#[repr(i32)]
30pub enum TCStatus {
31    Pending = 0,
32    Completed = 1,
33    Deleted = 2,
34    Recurring = 3,
35    Unknown = -1,
36}
37
38impl From<TCStatus> for Status {
39    fn from(status: TCStatus) -> Status {
40        match status {
41            TCStatus::Pending => Status::Pending,
42            TCStatus::Completed => Status::Completed,
43            TCStatus::Deleted => Status::Deleted,
44            TCStatus::Recurring => Status::Recurring,
45            _ => Status::Unknown(format!("unknown TCStatus {}", status as u32)),
46        }
47    }
48}
49
50impl From<Status> for TCStatus {
51    fn from(status: Status) -> TCStatus {
52        match status {
53            Status::Pending => TCStatus::Pending,
54            Status::Completed => TCStatus::Completed,
55            Status::Deleted => TCStatus::Deleted,
56            Status::Recurring => TCStatus::Recurring,
57            Status::Unknown(_) => TCStatus::Unknown,
58        }
59    }
60}