From 44bbb20e62edc277722cc2c7014be4bffb6d4b93 Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Mon, 22 Apr 2024 01:31:02 +0200 Subject: [PATCH] triangulation: for refs consistently use structs instead of tuples --- src/triangulation.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/triangulation.rs b/src/triangulation.rs index f9ef0d7..c4f3b69 100644 --- a/src/triangulation.rs +++ b/src/triangulation.rs @@ -175,13 +175,13 @@ impl<'a, I: Copy + PartialEq + GetNodeIndex, W: GetVertexIndex + HasPosition< } } -/*#[derive(Debug, Clone, Copy, PartialEq)] -pub struct TriangulationVertexReference { +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct TriangulationVertexReference<'a, I: Copy, W> { index: I, weight: &'a W, } -impl visit::NodeRef for TriangulationVertexReference { +impl<'a, I: Copy, W: Copy> visit::NodeRef for TriangulationVertexReference<'a, I, W> { type NodeId = I; type Weight = W; @@ -192,25 +192,25 @@ impl visit::NodeRef for TriangulationVertexReference { fn weight(&self) -> &Self::Weight { self.weight } -}*/ +} -impl<'a, I: Copy + PartialEq + GetNodeIndex, W: GetVertexIndex + HasPosition> - visit::IntoNodeReferences for &'a Triangulation +impl< + 'a, + I: Copy + PartialEq + GetNodeIndex, + W: Copy + GetVertexIndex + HasPosition, + > visit::IntoNodeReferences for &'a Triangulation { - /*type NodeRef = TriangulationVertexReference; - type NodeReferences = Box> + 'a>;*/ - type NodeRef = (I, &'a W); - type NodeReferences = Box + 'a>; + type NodeRef = TriangulationVertexReference<'a, I, W>; + type NodeReferences = Box> + 'a>; fn node_references(self) -> Self::NodeReferences { Box::new( spade::Triangulation::fixed_vertices(&self.triangulation).map(|vertex| { let weight = spade::Triangulation::s(&self.triangulation).vertex_data(vertex); - /*TriangulationVertexReference { + TriangulationVertexReference { index: weight.vertex_index(), weight, - }*/ - (weight.vertex_index(), weight) + } }), ) }