1use core::fmt;
2
3use serde_repr::{Deserialize_repr, Serialize_repr};
4
5#[derive(Clone, Serialize_repr, Deserialize_repr)]
6#[repr(u8)]
7pub enum TaskStatus {
8 Ok = 1,
10 Error = 2,
12 Cancelled = 3,
14}
15
16impl TaskStatus {
17 pub fn is_ok(&self) -> bool {
21 matches!(self, Self::Ok)
22 }
23
24 pub fn is_error(&self) -> bool {
28 matches!(self, Self::Error)
29 }
30
31 pub fn is_cancelled(&self) -> bool {
35 matches!(self, Self::Cancelled)
36 }
37}
38
39impl Default for TaskStatus {
40 fn default() -> Self {
41 Self::Ok
42 }
43}
44
45impl fmt::Debug for TaskStatus {
46 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
47 match self {
48 TaskStatus::Ok => f.write_str("TaskStatus::Ok"),
49 TaskStatus::Error => f.write_str("TaskStatus::Error"),
50 TaskStatus::Cancelled => f.write_str("TaskStatus::Cancelled"),
51 }
52 }
53}
54
55impl fmt::Display for TaskStatus {
56 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
57 match self {
58 TaskStatus::Ok => f.write_str("Ok"),
59 TaskStatus::Error => f.write_str("Error"),
60 TaskStatus::Cancelled => f.write_str("Cancelled"),
61 }
62 }
63}