From 90657b245205c3494ef73854c28e7664b42888be Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Mon, 9 Oct 2023 10:34:03 +0200 Subject: [PATCH] Implement `FromIterator` for `CurveBoundaries` --- .../fj-core/src/algorithms/approx/curve/approx.rs | 10 ++++------ crates/fj-core/src/geometry/boundary/multiple.rs | 13 +++++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/crates/fj-core/src/algorithms/approx/curve/approx.rs b/crates/fj-core/src/algorithms/approx/curve/approx.rs index b0ee82d3f..00f5d25b6 100644 --- a/crates/fj-core/src/algorithms/approx/curve/approx.rs +++ b/crates/fj-core/src/algorithms/approx/curve/approx.rs @@ -50,12 +50,10 @@ impl CurveApprox { impl From<[CurveApproxSegment; N]> for CurveApprox { fn from(segments: [CurveApproxSegment; N]) -> Self { Self { - segments: CurveBoundaries { - inner: segments - .into_iter() - .map(|segment| (segment.boundary, segment.points)) - .collect(), - }, + segments: segments + .into_iter() + .map(|segment| (segment.boundary, segment.points)) + .collect(), } } } diff --git a/crates/fj-core/src/geometry/boundary/multiple.rs b/crates/fj-core/src/geometry/boundary/multiple.rs index b4516e3b7..d922fd970 100644 --- a/crates/fj-core/src/geometry/boundary/multiple.rs +++ b/crates/fj-core/src/geometry/boundary/multiple.rs @@ -115,6 +115,19 @@ impl Default for CurveBoundaries { } } +impl FromIterator<(CurveBoundary>, T)> + for CurveBoundaries +{ + fn from_iter(iter: I) -> Self + where + I: IntoIterator>, T)>, + { + Self { + inner: iter.into_iter().collect(), + } + } +} + /// A payload that can be used in [`CurveBoundaries`] pub trait CurveBoundariesPayload: Clone + Ord { /// Reverse the orientation of the payload