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}