bpm_engine_storage/
token_store.rs1use async_trait::async_trait;
2use bpm_engine_core::Token;
3
4#[async_trait]
5pub trait TokenStore: Send + Sync {
6 async fn load_by_instance(&self, instance_id: &str) -> anyhow::Result<Vec<Token>>;
7 async fn save_tokens(&self, instance_id: &str, tokens: &[Token]) -> anyhow::Result<()>;
8 async fn update_token_cas(&self, instance_id: &str, token: &Token) -> anyhow::Result<bool>;
9 async fn claim_token(
10 &self,
11 instance_id: &str,
12 token_id: &str,
13 version: u32,
14 ) -> anyhow::Result<bool>;
15}