taskflow_rs/task/status.rs
1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
4pub enum TaskStatus {
5 Pending,
6 Running,
7 Completed,
8 Failed,
9 Cancelled,
10 Retrying,
11}
12
13impl TaskStatus {
14 pub fn is_finished(&self) -> bool {
15 matches!(
16 self,
17 TaskStatus::Completed | TaskStatus::Failed | TaskStatus::Cancelled
18 )
19 }
20
21 pub fn can_retry(&self) -> bool {
22 matches!(self, TaskStatus::Failed)
23 }
24}