path_finding_lib/search/
breadth_first.rs

1use crate::graph::Graph;
2use crate::node::Node;
3use crate::path::PathFinding;
4use crate::search::probing;
5use crate::search::probing::{bi_directional_probe, probe};
6
7pub struct BreadthFirstSearch {}
8
9pub struct BiBreadthFirstSearch {}
10
11impl PathFinding for BreadthFirstSearch {
12    fn execute(&self, source: Node, target: Node, graph: &Graph) -> Graph {
13        return probe(source.clone(), target.id, graph, probing::dequeue);
14    }
15}
16
17impl PathFinding for BiBreadthFirstSearch {
18    fn execute(&self, source: Node, target: Node, graph: &Graph) -> Graph {
19        return bi_directional_probe(source, target, graph);
20    }
21}