Skip to main content

bpm_engine_core/
token.rs

1// Placeholder; content migrated in step 2.
2pub 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}