Skip to main content

tinyflow_framework/state/
chain_state_dir.rs

1//! Per-chain-subtask SQLite database under `{work_dir}/chains/{subtask_index}/chain.db`.
2
3use std::path::Path;
4use std::sync::Arc;
5
6use crate::state::SqliteJobStateStore;
7use tinyflow_api::error::StreamResult;
8use tinyflow_api::state::StateStore;
9
10pub async fn open_chain_state_db(
11    work_dir: &Path,
12    subtask_index: u32,
13) -> StreamResult<Arc<dyn StateStore>> {
14    let path = work_dir
15        .join("chains")
16        .join(subtask_index.to_string())
17        .join("chain.db");
18    SqliteJobStateStore::open(&path).await
19}