From 644d648f71ce17bf6c88d6604208b4b701f33c49 Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Thu, 18 Jan 2024 21:06:06 +0000 Subject: [PATCH] layout: use `.update_edge()` instead of `.add_edge()` We never want to end up with a parallel edge. Lack of edge creation is likely to trigger an assertion, so a bug is more likely to be immediately caught this way. --- src/layout.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/layout.rs b/src/layout.rs index 7d10e16..d90de25 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -400,7 +400,7 @@ impl Layout { } if let Some(new_inner) = maybe_new_inner { - self.geometry.add_edge( + self.geometry.update_edge( new_inner.node_index(), bend.node_index(), GeometryLabel::Outer, @@ -566,9 +566,9 @@ impl Layout { let seg = GenericIndex::::new(self.geometry.add_node(weight.into())); self.geometry - .add_edge(from.node_index(), seg.node_index(), GeometryLabel::Adjacent); + .update_edge(from.node_index(), seg.node_index(), GeometryLabel::Adjacent); self.geometry - .add_edge(seg.node_index(), to.node_index(), GeometryLabel::Adjacent); + .update_edge(seg.node_index(), to.node_index(), GeometryLabel::Adjacent); self.insert_into_rtree(seg.into()); self.fail_and_remove_if_infringes_except(seg.into(), infringables)?; @@ -648,15 +648,15 @@ impl Layout { { let bend = LooseBendIndex::new(self.geometry.add_node(weight.into())); - self.geometry.add_edge( + self.geometry.update_edge( from.node_index(), bend.node_index(), GeometryLabel::Adjacent, ); self.geometry - .add_edge(bend.node_index(), to.node_index(), GeometryLabel::Adjacent); + .update_edge(bend.node_index(), to.node_index(), GeometryLabel::Adjacent); self.geometry - .add_edge(bend.node_index(), core.node_index(), GeometryLabel::Core); + .update_edge(bend.node_index(), core.node_index(), GeometryLabel::Core); self.insert_into_rtree(bend.into()); self.fail_and_remove_if_infringes_except(bend.into(), infringables)?; @@ -693,17 +693,17 @@ impl Layout { let bend = LooseBendIndex::new(self.geometry.add_node(weight.into())); - self.geometry.add_edge( + self.geometry.update_edge( from.node_index(), bend.node_index(), GeometryLabel::Adjacent, ); self.geometry - .add_edge(bend.node_index(), to.node_index(), GeometryLabel::Adjacent); + .update_edge(bend.node_index(), to.node_index(), GeometryLabel::Adjacent); self.geometry - .add_edge(bend.node_index(), core.node_index(), GeometryLabel::Core); + .update_edge(bend.node_index(), core.node_index(), GeometryLabel::Core); self.geometry - .add_edge(inner.node_index(), bend.node_index(), GeometryLabel::Outer); + .update_edge(inner.node_index(), bend.node_index(), GeometryLabel::Outer); self.insert_into_rtree(bend.into()); self.fail_and_remove_if_infringes_except(bend.into(), infringables)?;