Skip to main content

ralph/queue/
graph.rs

1//! Dependency graph analysis for task queues.
2//!
3//! Responsibilities:
4//! - Provide the `queue::graph` module public API via focused submodules.
5//! - Re-export the minimal set of types/functions consumed by CLI/GUI clients and other crate code.
6//!
7//! Not handled here:
8//! - Graph construction (see `build`).
9//! - Algorithms (see `algorithms`).
10//! - Traversal helpers (see `traversal`).
11//!
12//! Invariants/assumptions:
13//! - The graph represents a DAG in normal operation (cycles are rejected elsewhere).
14//! - Task IDs used as graph keys are normalized via `trim()` during graph construction.
15
16mod algorithms;
17mod build;
18mod traversal;
19mod types;
20
21pub use algorithms::{
22    find_critical_path_from, find_critical_paths, get_blocked_tasks, get_runnable_tasks,
23    topological_sort,
24};
25pub use build::build_graph;
26pub use types::{BoundedChainResult, CriticalPathResult, DependencyGraph, GraphFormat, TaskNode};
27
28#[cfg(test)]
29mod tests;