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}