bpm-engine-core 0.2.0

Core types and traits for the BPM engine (process, token, node)
Documentation
use std::collections::HashMap;

use super::token::Token;

#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize)]
pub enum InstanceState {
    Running,
    Completed,
    Terminated,
}

#[derive(Debug, Clone, serde::Serialize)]
pub struct ProcessInstance {
    pub id: String,
    pub process_def_id: String,
    pub tenant_id: Option<String>,
    pub tokens: Vec<Token>,
    pub variables: HashMap<String, String>,
    pub state: InstanceState,
    pub version: u32,
}

impl ProcessInstance {
    pub fn completed(&self) -> bool {
        self.state == InstanceState::Completed
    }
}