lemon-graph 0.0.1

Async directed computation graphs.
Documentation
mod step;

use petgraph::graph::NodeIndex;
pub use step::*;

use crate::Graph;

pub struct Executor;

impl Executor {
    pub async fn execute(graph: &mut Graph, start: NodeIndex) -> Result<(), ExecutionStepError> {
        let mut steps = vec![ExecutionStep(start)];

        while let Some(step) = steps.pop() {
            let next_steps = step.execute(graph).await?;
            steps.extend(next_steps);
        }

        Ok(())
    }
}