diff --git a/src/geometry/geometry.rs b/src/geometry/geometry.rs index ccbed2d..8e14a91 100644 --- a/src/geometry/geometry.rs +++ b/src/geometry/geometry.rs @@ -506,9 +506,13 @@ impl< > Geometry { pub fn first_rail(&self, node: NodeIndex) -> Option { + self.all_rails(node).next() + } + + pub fn all_rails(&self, node: NodeIndex) -> impl Iterator + '_ { self.graph .edges_directed(node, Incoming) - .find(|edge| matches!(edge.weight(), GeometryLabel::Core)) + .filter(|edge| matches!(edge.weight(), GeometryLabel::Core)) .map(|edge| { self.primitive_index(edge.source()) .try_into()