diff --git a/lib/dijkstra/src/lib.rs b/lib/dijkstra/src/lib.rs index fce79a4..7dd66f7 100644 --- a/lib/dijkstra/src/lib.rs +++ b/lib/dijkstra/src/lib.rs @@ -23,7 +23,7 @@ impl Debug for dyn Matrix { } pub struct Dijkstra<'a, T> { - matrix: Box<&'a mut dyn Matrix>, + matrix: &'a mut dyn Matrix, unvisited_with_distance: HashSet, unvisited_without_distance: HashSet, } @@ -40,9 +40,9 @@ impl<'a, T> Dijkstra<'a, T> where T: PartialOrd + Add + Display + Copy + Debug, { - pub fn new(matrix: Box<&'a mut dyn Matrix>) -> Self { + pub fn new(matrix: &'a mut dyn Matrix) -> Self { let unvisited_with_distance = HashSet::new(); - let unvisited_without_distance = Self::initialize_unvisited_set(*matrix, START); + let unvisited_without_distance = Self::initialize_unvisited_set(&*matrix, START); Self { matrix, unvisited_with_distance, diff --git a/src/euler81/src/main.rs b/src/euler81/src/main.rs index d99d3a0..11bad4f 100644 --- a/src/euler81/src/main.rs +++ b/src/euler81/src/main.rs @@ -110,7 +110,7 @@ impl Matrix { fn main() { let mut matrix = Matrix::load(Path::new(FILENAME)); - let mut dijkstra = Dijkstra::new(Box::new(&mut matrix)); + let mut dijkstra = Dijkstra::new(&mut matrix); dijkstra.solve(); let result = matrix .get((LENGTH - 1, LENGTH - 1))