Public declaration syntax from forge-rs/harness-runtime/src/strategy/microdag.rs Original source SHA-256: c41dc7ae8731c44e70ba0d8775af404b4a51b07e2d8a1bef788dc854e8efdc94 Function bodies and constant values are omitted. This is not the complete implementation. Source line 18 #[derive(Debug, Clone, PartialEq, Eq, Error)] pub enum DagError { /// Two nodes share an id. #[error("duplicate node id {0:?}")] DuplicateNode(String), /// A `depends_on` edge names a node that does not exist. #[error("node {node:?} depends on unknown node {dependency:?}")] UnknownDependency { /// The node carrying the edge. node: String, /// The missing dependency. dependency: String, }, /// The graph contains a dependency cycle. #[error("dependency cycle involving {0:?}")] Cycle(Vec), } Source line 37 #[derive(Debug, Clone, PartialEq, Eq)] pub struct MicroDagNode { /// Unique step id. pub id: String, /// Ids of steps that must complete before this one starts. pub depends_on: Vec } Source line 46 #[derive(Debug, Clone, PartialEq, Eq)] pub struct MicroDag { } Source line 53 pub fn new(nodes: Vec) -> Result; Source line 60 pub fn nodes(&self) -> &[MicroDagNode]; Source line 91 pub fn layers(&self) -> Result>, DagError>; Source line 147 pub trait MicroDagStrategy: LoopStrategy { /// Compile a task and admitted manifest into an executable MicroDAG. fn compile(&self, task: &str) -> Result; }