diff --git a/src/graph.rs b/src/graph.rs index 0cfe713..48ae2d9 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -8,11 +8,6 @@ use petgraph::stable_graph::NodeIndex; // Due to apparent limitations of enum_dispatch we're forced to import some types backwards. -#[enum_dispatch] -pub trait NewFromNodeIndex { - fn new(index: NodeIndex) -> Self; -} - #[enum_dispatch] pub trait GetNodeIndex { fn node_index(&self) -> NodeIndex; @@ -24,6 +19,15 @@ pub struct GenericIndex { marker: PhantomData, } +impl GenericIndex { + pub fn new(index: NodeIndex) -> Self { + Self { + node_index: index, + marker: PhantomData, + } + } +} + impl Hash for GenericIndex { fn hash(&self, state: &mut H) { self.node_index.hash(state) @@ -38,15 +42,6 @@ impl PartialEq for GenericIndex { impl Eq for GenericIndex {} -impl NewFromNodeIndex for GenericIndex { - fn new(index: NodeIndex) -> Self { - Self { - node_index: index, - marker: PhantomData, - } - } -} - impl GetNodeIndex for GenericIndex { fn node_index(&self) -> NodeIndex { self.node_index diff --git a/src/layout.rs b/src/layout.rs index 4438a3e..5bcbf06 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -19,7 +19,7 @@ use crate::connectivity::{ BandIndex, BandWeight, ComponentIndex, ComponentWeight, ConnectivityGraph, ConnectivityLabel, ConnectivityWeight, GetNet, }; -use crate::graph::{GenericIndex, GetNodeIndex, NewFromNodeIndex}; +use crate::graph::{GenericIndex, GetNodeIndex}; use crate::guide::Guide; use crate::layout::bend::BendIndex; use crate::layout::dot::DotWeight; diff --git a/src/layout/bend.rs b/src/layout/bend.rs index eda7dbb..52de6dc 100644 --- a/src/layout/bend.rs +++ b/src/layout/bend.rs @@ -3,15 +3,15 @@ use enum_dispatch::enum_dispatch; use crate::{ connectivity::{BandIndex, ComponentIndex}, graph::GenericIndex, - layout::{GetNodeIndex, Layout, NewFromNodeIndex}, + layout::{GetNodeIndex, Layout}, primitive::{GenericPrimitive, Primitive}, }; use super::geometry::{ BendWeightTrait, GeometryIndex, GeometryWeight, GetBandIndex, GetComponentIndex, - GetComponentIndexMut, GetOffset, GetPos, GetWidth, MakePrimitive, Retag, + GetComponentIndexMut, GetOffset, GetWidth, MakePrimitive, Retag, }; -use geo::Point; + use petgraph::stable_graph::NodeIndex; #[enum_dispatch(GetNodeIndex, MakePrimitive)] diff --git a/src/layout/dot.rs b/src/layout/dot.rs index b6c2a0f..050d3fb 100644 --- a/src/layout/dot.rs +++ b/src/layout/dot.rs @@ -4,7 +4,7 @@ use geo::Point; use crate::{ connectivity::{BandIndex, ComponentIndex}, graph::GenericIndex, - layout::{GetNodeIndex, Layout, NewFromNodeIndex}, + layout::{GetNodeIndex, Layout}, math::Circle, primitive::{GenericPrimitive, Primitive}, }; diff --git a/src/layout/geometry.rs b/src/layout/geometry.rs index 14e3550..97d2f4a 100644 --- a/src/layout/geometry.rs +++ b/src/layout/geometry.rs @@ -1,6 +1,5 @@ use std::marker::PhantomData; -use contracts::debug_invariant; use enum_dispatch::enum_dispatch; use geo::Point; use petgraph::{ @@ -10,7 +9,7 @@ use petgraph::{ use crate::{ connectivity::{BandIndex, ComponentIndex}, - graph::{GenericIndex, GetNodeIndex, NewFromNodeIndex}, + graph::{GenericIndex, GetNodeIndex}, layout::Layout, math::Circle, primitive::Primitive, @@ -19,7 +18,7 @@ use crate::{ use super::{ bend::{FixedBendIndex, FixedBendWeight, LooseBendIndex, LooseBendWeight}, - dot::{DotWeight, FixedDotIndex, FixedDotWeight, LooseDotIndex, LooseDotWeight}, + dot::{FixedDotIndex, FixedDotWeight, LooseDotIndex, LooseDotWeight}, seg::{ FixedSegIndex, FixedSegWeight, LoneLooseSegIndex, LoneLooseSegWeight, SeqLooseSegIndex, SeqLooseSegWeight, diff --git a/src/layout/seg.rs b/src/layout/seg.rs index 9f649db..4cf18d2 100644 --- a/src/layout/seg.rs +++ b/src/layout/seg.rs @@ -3,7 +3,7 @@ use enum_dispatch::enum_dispatch; use crate::{ connectivity::{BandIndex, ComponentIndex}, graph::GenericIndex, - layout::{GetNodeIndex, Layout, NewFromNodeIndex}, + layout::{GetNodeIndex, Layout}, primitive::{GenericPrimitive, Primitive}, }; diff --git a/src/primitive.rs b/src/primitive.rs index ef481c3..beb5882 100644 --- a/src/primitive.rs +++ b/src/primitive.rs @@ -1,11 +1,9 @@ -use std::mem::swap; - use enum_dispatch::enum_dispatch; use petgraph::stable_graph::NodeIndex; use petgraph::Direction::{Incoming, Outgoing}; use crate::connectivity::{BandIndex, ComponentIndex, GetNet}; -use crate::graph::{GenericIndex, GetNodeIndex, NewFromNodeIndex}; +use crate::graph::{GenericIndex, GetNodeIndex}; use crate::layout::seg::{ FixedSegIndex, FixedSegWeight, LoneLooseSegIndex, LoneLooseSegWeight, SegIndex, SeqLooseSegIndex, SeqLooseSegWeight, @@ -20,8 +18,8 @@ use crate::layout::{ }, }; use crate::loose::{Loose, LooseIndex}; -use crate::math::{self, Circle}; -use crate::shape::{BendShape, DotShape, SegShape, Shape, ShapeTrait}; + +use crate::shape::{Shape, ShapeTrait}; #[enum_dispatch] pub trait GetLayout {