Incremental Topo

Crates.io Travis CI Documentation

A data structure for maintaining an topological ordering in an incremental fashion.

Usage

To use incremental-topo, first add this to your Cargo.toml:

toml [dependencies] incremental-topo = "0.2.1"

Next, add this to your crate:

```rust use incremental_topo::IncrementalTopo;

let mut dag = IncrementalTopo::new();

let cat = dag.addnode(); let dog = dag.addnode(); let human = dag.add_node();

assert_eq!(dag.len(), 3);

dag.adddependency(&human, &dog).unwrap(); dag.adddependency(&human, &cat).unwrap(); dag.add_dependency(&dog, &cat).unwrap();

let animal_order: Vec<_> = dag.descendants(&human).unwrap().collect();

asserteq!(animalorder, vec![dog, cat]); ```

See documentation for more details.

License

This project is dual licensed under the MIT license and Apache 2.0 license.