roadmap/
lib.rs

1//! Model project roadmaps and step dependencies
2//!
3//! This crate models a roadmap as steps, which may depend on each
4//! other, and a directed acyclic graph (DAG) of said steps, which
5//! leads to the end goal. There is no support for due dates,
6//! estimates, or other such project management features. These roadmaps only
7//! care about what steps need to be take, in what order, to reach the
8//! goal.
9//!
10//! # Example
11//! ```
12//! # fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
13//! let mut r = roadmap::from_yaml("
14//! endgoal:
15//!   label: The end goal
16//!   depends:
17//!   - first
18//! first:
19//!   label: The first step
20//! ").unwrap();
21//!
22//! let n: Vec<&str> = r.step_names().collect();
23//! assert_eq!(n.len(), 2);
24//! assert!(n.contains(&"first"));
25//! assert!(n.contains(&"endgoal"));
26//!
27//! r.set_missing_statuses();
28//! println!("{}", r.format_as_dot(30).unwrap());
29//!
30//! # Ok(())
31//! # }
32//! ```
33
34mod err;
35pub use err::RoadmapError;
36
37mod status;
38pub use status::Status;
39
40mod step;
41pub use step::Step;
42
43mod map;
44pub use map::Roadmap;
45pub use map::RoadmapResult;
46
47mod parser;
48pub use parser::from_yaml;