5 releases
0.2.1 | Jul 14, 2022 |
---|---|
0.2.0 | Jul 10, 2022 |
0.1.2 | Aug 2, 2019 |
0.1.1 | Sep 19, 2018 |
0.1.0 | Sep 5, 2018 |
#1541 in Data structures
2,666 downloads per month
Used in p2panda-rs
43KB
548 lines
Incremental Topo
A data structure for maintaining an topological ordering in an incremental fashion.
Usage
To use incremental-topo
, first add this to your Cargo.toml
:
[dependencies]
incremental-topo = "0.2.1"
Next, add this to your crate:
use incremental_topo::IncrementalTopo;
let mut dag = IncrementalTopo::new();
let cat = dag.add_node();
let dog = dag.add_node();
let human = dag.add_node();
assert_eq!(dag.len(), 3);
dag.add_dependency(&human, &dog).unwrap();
dag.add_dependency(&human, &cat).unwrap();
dag.add_dependency(&dog, &cat).unwrap();
let animal_order: Vec<_> = dag.descendants(&human).unwrap().collect();
assert_eq!(animal_order, vec![dog, cat]);
See documentation for more details.
License
This project is dual licensed under the MIT license and Apache 2.0 license.
Dependencies
~160KB