Skip to main content

tinyflow_api/
context.rs

1use std::sync::Arc;
2
3use crate::state::StateStore;
4
5pub struct RuntimeContext {
6    pub task_id: u32,
7    pub task_name: String,
8    pub subtask_index: u32,
9    pub parallelism: u32,
10    pub chain_id: u64,
11    pub job_state: Arc<dyn StateStore>,
12    pub chain_state: Option<Arc<dyn StateStore>>,
13}
14
15impl RuntimeContext {
16    pub fn new(
17        task_id: u32,
18        task_name: impl Into<String>,
19        subtask_index: u32,
20        parallelism: u32,
21        chain_id: u64,
22        job_state: Arc<dyn StateStore>,
23        chain_state: Option<Arc<dyn StateStore>>,
24    ) -> Self {
25        Self {
26            task_id,
27            task_name: task_name.into(),
28            subtask_index,
29            parallelism,
30            chain_id,
31            job_state,
32            chain_state,
33        }
34    }
35}