mod path;
pub use self::path::Path;
pub mod grid {
mod a_star;
pub use self::a_star::a_star_search;
mod dijkstra;
pub use self::dijkstra::dijkstra_search;
}
pub mod graph {
mod a_star;
pub use self::a_star::a_star_search;
mod dijkstra;
pub use self::dijkstra::dijkstra_search;
}
pub type Cost = usize;
fn ordered_insert<T, V, F>(vector: &mut Vec<T>, element: T, mut get_value: F)
where
V: Ord,
F: FnMut(&T) -> V,
{
let value = get_value(&element);
for i in 0..vector.len() {
if get_value(&vector[i]) <= value {
vector.insert(i, element);
return;
}
}
vector.push(element);
}