message: A*: Minor fixes
diff: @@ -44,13 +44,15 @@ use algo::Measure;
  /// let d = g.add_node((0., 2.));
  /// let e = g.add_node((3., 3.));
  /// let f = g.add_node((4., 2.));
  -/// let ab = g.add_edge(a, b, 2);
  -/// let ad = g.add_edge(a, d, 4);
  -/// let bc = g.add_edge(b, c, 1);
  -/// let bf = g.add_edge(b, f, 7);
  -/// let ce = g.add_edge(c, e, 5);
  -/// let ef = g.add_edge(e, f, 1);
  -/// let de = g.add_edge(d, e, 1);
  +/// g.extend_with_edges(&[
  +/// (a, b, 2),
  +/// (a, d, 4),
  +/// (b, c, 1),
  +/// (b, f, 7),
  +/// (c, e, 5),
  +/// (e, f, 1),
  +/// (d, e, 1),
  +/// ]);
  ///
  /// let path = astar(&g, a, |finish| finish == f, |e| *e.weight(), |_| 0);
  /// assert_eq!(path, Some(vec![a, d, e, f]));
  @@ -59,11 +61,11 @@ use algo::Measure;
  /// The graph should be `Visitable` and implement `IntoEdges`. Edge costs must be non-negative.
  ///
  /// Returns a Path of subsequent `NodeId` from start to finish, if one was found.
  -pub fn astar<G, F, H, K, IsGoal>(graph: G, start: G::NodeId, is_goal: IsGoal,
  +pub fn astar<G, F, H, K, IsGoal>(graph: G, start: G::NodeId, mut is_goal: IsGoal,
  mut edge_cost: F, mut estimate_cost: H)
  - -> Option<Path<G>>
  + -> Option<Vec<G::NodeId>>
  where G: IntoEdges + Visitable,
  - IsGoal: Fn(G::NodeId) -> bool,
  + IsGoal: FnMut(G::NodeId) -> bool,
  G::NodeId: Eq + Hash,
  F: FnMut(G::EdgeRef) -> K,
  H: FnMut(G::NodeId) -> K,
  @@ -125,8 +127,6 @@ pub fn astar<G, F, H, K, IsGoal>(graph: G, start: G::NodeId, is_goal: IsGoal,
  None
  }
  -pub type Path<G: GraphBase> = Vec<G::NodeId>;
  -
  struct PathTracker<G>
  where G: GraphBase,
  G::NodeId: Eq + Hash,
  @@ -148,7 +148,7 @@ impl<G> PathTracker<G>
  self.came_from.insert(node, previous);
  }
  - fn reconstruct_path_to(&self, last: G::NodeId) -> Path<G> {
  + fn reconstruct_path_to(&self, last: G::NodeId) -> Vec<G::NodeId> {
  let mut path = vec![last];
  let mut current = last;
  