Execute work described by a dependency graph using either a single-threaded worker or in parallel using a threadpool.
This is an implementation of Kahn's algorithm for topological sorting minimally adapted to be run in parallel.
```rust use partopo::{Dag, Node}; use std::time::Instant; use std::{thread, time::Duration};
// Construct a DAG: // 1 -> 2 // 1 -> 3 // 4 -> 5 // 2 -> 5
let mut dag: Dag
// Example work function fn dowork(data: usize) { thread::sleep(Duration::frommillis(1000)); println!("{}", data); }
// Execute work on a threadpool partopo::parexecute(dag, dowork); ```
This is not an officially supported Google product