bsp_types/task/
status.rs

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    /// Execution was successful.
9    Ok = 1,
10    /// Execution failed.
11    Error = 2,
12    /// Execution was cancelled.
13    Cancelled = 3,
14}
15
16impl TaskStatus {
17    /// Returns `true` if the task status is [`Ok`].
18    ///
19    /// [`Ok`]: TaskStatus::Ok
20    pub fn is_ok(&self) -> bool {
21        matches!(self, Self::Ok)
22    }
23
24    /// Returns `true` if the task status is [`Error`].
25    ///
26    /// [`Error`]: TaskStatus::Error
27    pub fn is_error(&self) -> bool {
28        matches!(self, Self::Error)
29    }
30
31    /// Returns `true` if the task status is [`Cancelled`].
32    ///
33    /// [`Cancelled`]: TaskStatus::Cancelled
34    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}