Crate roadmap

Source
Expand description

Model project roadmaps and step dependencies

This crate models a roadmap as steps, which may depend on each other, and a directed acyclic graph (DAG) of said steps, which leads to the end goal. There is no support for due dates, estimates, or other such project management features. These roadmaps only care about what steps need to be take, in what order, to reach the goal.

§Example

let mut r = roadmap::from_yaml("
endgoal:
  label: The end goal
  depends:
  - first
first:
  label: The first step
").unwrap();

let n: Vec<&str> = r.step_names().collect();
assert_eq!(n.len(), 2);
assert!(n.contains(&"first"));
assert!(n.contains(&"endgoal"));

r.set_missing_statuses();
println!("{}", r.format_as_dot(30).unwrap());

Structs§

Roadmap
Represent a full project roadmap.
Step
A roadmap step.

Enums§

RoadmapError
Errors that can be returned for roadmaps.
Status
Represent the status of a step in a roadmap.

Functions§

from_yaml
Create a new roadmap from a textual YAML representation.

Type Aliases§

RoadmapResult
Error in Roadmap, from parsing or otherwise.