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}