pub fn new<'a, I, N, E, Ty: EdgeType, Ix: IndexType, G>(
graph: &'a Graph<I, N, E, Ty, Ix>,
journey: (NodeIndex<Ix>, Option<NodeIndex<Ix>>),
edge_cost: G,
direction: Direction
) -> BestFirst<'a, I, N, E, Ty, Ix, impl Fn(NodeIndex<Ix>, EdgeIndex<Ix>, f32, NodeIndex<Ix>) -> f32 + 'a>where
G: Fn(&E) -> f32 + 'a,