pub trait PathFinding {
// Required methods
fn graph(&self, source: Node, target: Node, graph: &Graph) -> Graph;
fn grid(
&self,
source: (usize, usize),
target: (usize, usize),
grid: &Grid,
directions: &[Direction],
) -> Graph;
}