1pub type TokenId = String;
3pub type ParallelGroupId = String;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize)]
6pub enum TokenStatus {
7 Created,
8 Ready,
9 Executing,
10 Waiting,
11 Suspended,
12 Completed,
13 Terminated,
14}
15
16#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize)]
17pub enum TokenMode {
18 Forward,
19 Compensation,
20}
21
22#[derive(Debug, Clone, serde::Serialize)]
23pub struct Token {
24 pub id: TokenId,
25 pub node_id: String,
26 pub status: TokenStatus,
27 pub mode: TokenMode,
28 pub version: u32,
29 pub attempt: u32,
30 pub parallel_group_id: Option<ParallelGroupId>,
31 pub updated_at: Option<String>,
32}
33
34impl Token {
35 pub fn waiting(&self) -> bool {
36 self.status == TokenStatus::Waiting
37 }
38}