lemon_graph/execution/
mod.rs

1mod step;
2
3use petgraph::graph::NodeIndex;
4pub use step::*;
5
6use crate::Graph;
7
8pub struct Executor;
9
10impl Executor {
11    pub async fn execute(graph: &mut Graph, start: NodeIndex) -> Result<(), ExecutionStepError> {
12        let mut steps = vec![ExecutionStep(start)];
13
14        while let Some(step) = steps.pop() {
15            let next_steps = step.execute(graph).await?;
16            steps.extend(next_steps);
17        }
18
19        Ok(())
20    }
21}