pub fn depth_first_search<G, I, V>(
graph: &G,
starts: I,
workspace: &mut DfsEventWorkspace<G::Node, G::Edge>,
visitor: V,
) -> boolwhere
G: IndexGraphView,
I: IntoIterator<Item = G::Node>,
V: FnMut(DfsEvent<G::Node, G::Edge>) -> TraversalControl,