[−][src]Function esl01_drawdag::parse
pub fn parse(text: impl AsRef<str>) -> BTreeMap<String, BTreeSet<String>>
Parse an ASCII DAG. Extract edge information. Return a map from names to their parents.
The direction of the graph is automatically detected.
If |
is used, then roots are at the bottom, heads are at the top side.
Otherwise, -
can be used, and roots are at the left, heads are at the
right. |
and -
cannot be used together.
Example:
use drawdag::parse; let edges = parse(r#" E \ C----B----A / D- "#); let expected = "{\"A\": {\"B\", \"E\"}, \"B\": {\"C\", \"D\"}, \"C\": {}, \"D\": {}, \"E\": {}}"; assert_eq!(format!("{:?}", edges), expected); let edges = parse(r#" A /| | B E | |\ C D "#); assert_eq!(format!("{:?}", edges), expected);