pub fn build_directed_adjacency( node_count: usize, edges: &[(usize, usize)], ) -> Result<Vec<Vec<usize>>, AdjacencyError>