reth_stages/test_utils/
set.rs

1use super::TEST_STAGE_ID;
2use crate::{StageSet, StageSetBuilder};
3use reth_stages_api::{test_utils::TestStage, ExecOutput, StageError, UnwindOutput};
4use std::collections::VecDeque;
5
6#[derive(Default, Debug)]
7pub struct TestStages {
8    exec_outputs: VecDeque<Result<ExecOutput, StageError>>,
9    unwind_outputs: VecDeque<Result<UnwindOutput, StageError>>,
10}
11
12impl TestStages {
13    pub const fn new(
14        exec_outputs: VecDeque<Result<ExecOutput, StageError>>,
15        unwind_outputs: VecDeque<Result<UnwindOutput, StageError>>,
16    ) -> Self {
17        Self { exec_outputs, unwind_outputs }
18    }
19}
20
21impl<Provider> StageSet<Provider> for TestStages {
22    fn builder(self) -> StageSetBuilder<Provider> {
23        StageSetBuilder::default().add_stage(
24            TestStage::new(TEST_STAGE_ID)
25                .with_exec(self.exec_outputs)
26                .with_unwind(self.unwind_outputs),
27        )
28    }
29}