Skip to main content

bpm_engine_storage/
token_store.rs

1use 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}