Skip to main content

bpm_engine_core/
instance.rs

1use std::collections::HashMap;
2
3use super::token::Token;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize)]
6pub enum InstanceState {
7    Running,
8    Completed,
9    Terminated,
10}
11
12#[derive(Debug, Clone, serde::Serialize)]
13pub struct ProcessInstance {
14    pub id: String,
15    pub process_def_id: String,
16    pub tenant_id: Option<String>,
17    pub tokens: Vec<Token>,
18    pub variables: HashMap<String, String>,
19    pub state: InstanceState,
20    pub version: u32,
21}
22
23impl ProcessInstance {
24    pub fn completed(&self) -> bool {
25        self.state == InstanceState::Completed
26    }
27}