Metro is a crate for rendering graphs similar to git log --graph
.
Add this to your Cargo.toml
:
toml
[dependencies]
metro = "0.1"
```rust use metro::Event::*; let events = [ Station(0, "Station 1"), Station(0, "Station 2"), NoEvent, Station(0, "Station 3"), SplitTrack(0, 1), Station(1, "Station 4"), SplitTrack(1, 2), Station(1, "Station 5"), Station(2, "Station 6"), NoEvent, Station(0, "Station 7"), Station(1, "Station 8"), Station(2, "Station 9"), SplitTrack(2, 3), SplitTrack(3, 4), Station(5, "Station 10"), JoinTrack(4, 0), Station(3, "Station 11"), StopTrack(1), NoEvent, Station(0, "Station 12"), Station(2, "Station 13"), Station(3, "Station 14"), JoinTrack(5, 0), JoinTrack(3, 0), Station(2, "Station 15"), StopTrack(2), NoEvent, JoinTrack(1, 0), Station(0, "Station 16"), ];
println!("{}", metro::to_string(&events).unwrap()); ```
This will output the following:
text
* Station 1
* Station 2
|
* Station 3
|\
| * Station 4
| |\
| * | Station 5
| | * Station 6
| | |
* | | Station 7
| * | Station 8
| | * Station 9
| | |\
| | | |\
| | | | | Station 10
| |_|_|/
|/| | |
| | | * Station 11
| " | |
| / /
| | |
* | | Station 12
| * | Station 13
| | * Station 14
| |/
|/|
| * Station 15
| "
|
* Station 16