pub fn a_star<P, M, HeuristicFn, SuccessorsFn, SuccessFn>( start: P, heuristic: HeuristicFn, successors: SuccessorsFn, success: SuccessFn, timeout: Duration, ) -> Path<P, M>where P: Eq + Hash + Copy + Debug, HeuristicFn: Fn(P) -> f32, SuccessorsFn: FnMut(P) -> Vec<Edge<P, M>>, SuccessFn: Fn(P) -> bool,