multiversx_sc_scenario/scenario/
run_list.rs1use crate::scenario_model::*;
2
3use super::ScenarioRunner;
4
5#[derive(Default)]
9pub struct ScenarioRunnerList {
10 list: Vec<Box<dyn ScenarioRunner>>,
11}
12
13impl ScenarioRunnerList {
14 pub const fn empty() -> Self {
15 ScenarioRunnerList { list: Vec::new() }
16 }
17
18 pub fn push<R>(&mut self, runner: R)
19 where
20 R: ScenarioRunner + 'static,
21 {
22 self.list.push(Box::new(runner));
23 }
24
25 pub fn is_empty(&self) -> bool {
26 self.list.is_empty()
27 }
28}
29
30impl ScenarioRunner for ScenarioRunnerList {
31 fn run_external_steps(&mut self, step: &ExternalStepsStep) {
32 for runner in self.list.iter_mut() {
33 runner.run_external_steps(step);
34 }
35 }
36
37 fn run_set_state_step(&mut self, step: &SetStateStep) {
38 for runner in self.list.iter_mut() {
39 runner.run_set_state_step(step);
40 }
41 }
42
43 fn run_sc_call_step(&mut self, step: &mut ScCallStep) {
44 for runner in self.list.iter_mut() {
45 runner.run_sc_call_step(step);
46 }
47 }
48
49 fn run_multi_sc_call_step(&mut self, steps: &mut [ScCallStep]) {
50 for runner in self.list.iter_mut() {
51 for step in steps.iter_mut() {
52 runner.run_sc_call_step(step);
53 }
54 }
55 }
56
57 fn run_multi_sc_deploy_step(&mut self, steps: &mut [ScDeployStep]) {
58 for runner in self.list.iter_mut() {
59 for step in steps.iter_mut() {
60 runner.run_sc_deploy_step(step);
61 }
62 }
63 }
64
65 fn run_sc_query_step(&mut self, step: &mut ScQueryStep) {
66 for runner in self.list.iter_mut() {
67 runner.run_sc_query_step(step);
68 }
69 }
70
71 fn run_sc_deploy_step(&mut self, step: &mut ScDeployStep) {
72 for runner in self.list.iter_mut() {
73 runner.run_sc_deploy_step(step);
74 }
75 }
76
77 fn run_transfer_step(&mut self, step: &TransferStep) {
78 for runner in self.list.iter_mut() {
79 runner.run_transfer_step(step);
80 }
81 }
82
83 fn run_validator_reward_step(&mut self, step: &ValidatorRewardStep) {
84 for runner in self.list.iter_mut() {
85 runner.run_validator_reward_step(step);
86 }
87 }
88
89 fn run_check_state_step(&mut self, step: &CheckStateStep) {
90 for runner in self.list.iter_mut() {
91 runner.run_check_state_step(step);
92 }
93 }
94
95 fn run_dump_state_step(&mut self) {
96 for runner in self.list.iter_mut() {
97 runner.run_dump_state_step();
98 }
99 }
100}