From 1b5cacd407faa56fdb7b377dcbe9ab72c70d93f1 Mon Sep 17 00:00:00 2001 From: "Dr. Matthias Ratajczak" Date: Tue, 27 Sep 2022 13:04:04 +0200 Subject: [PATCH] refactor dijkstra --- lib/dijkstra/src/lib.rs | 6 +++--- src/euler81/src/main.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) 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))