pub fn dijkstra<NodeType, TFn, NFn>( start: NodeType, target_test: TFn, neighbors: NFn, ) -> Option<usize>where NodeType: Copy + Hash + Ord, TFn: Fn(NodeType) -> bool, NFn: Fn(NodeType) -> Vec<(NodeType, usize)>,