From ec748fc720e82eb9c5143a2f5ce5ca4054484614 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Mon, 18 Mar 2024 13:53:42 +0100 Subject: [PATCH] Expect `&Geometry` in `ValidationCheck::check` --- crates/fj-core/src/validate/cycle.rs | 5 +++-- .../src/validation/checks/half_edge_connection.rs | 2 ++ crates/fj-core/src/validation/validation_check.rs | 9 +++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/crates/fj-core/src/validate/cycle.rs b/crates/fj-core/src/validate/cycle.rs index 017694733..574aaf448 100644 --- a/crates/fj-core/src/validate/cycle.rs +++ b/crates/fj-core/src/validate/cycle.rs @@ -14,10 +14,11 @@ impl Validate for Cycle { &self, config: &ValidationConfig, errors: &mut Vec, - _: &Geometry, + geometry: &Geometry, ) { errors.extend( - AdjacentHalfEdgesNotConnected::check(self, config).map(Into::into), + AdjacentHalfEdgesNotConnected::check(self, geometry, config) + .map(Into::into), ); } } diff --git a/crates/fj-core/src/validation/checks/half_edge_connection.rs b/crates/fj-core/src/validation/checks/half_edge_connection.rs index a2ae617e6..2d65a92b9 100644 --- a/crates/fj-core/src/validation/checks/half_edge_connection.rs +++ b/crates/fj-core/src/validation/checks/half_edge_connection.rs @@ -1,6 +1,7 @@ use fj_math::{Point, Scalar}; use crate::{ + geometry::Geometry, objects::{Cycle, HalfEdge}, storage::Handle, validation::{validation_check::ValidationCheck, ValidationConfig}, @@ -40,6 +41,7 @@ pub struct AdjacentHalfEdgesNotConnected { impl ValidationCheck for AdjacentHalfEdgesNotConnected { fn check( object: &Cycle, + _: &Geometry, config: &ValidationConfig, ) -> impl Iterator { object.half_edges().pairs().filter_map(|(first, second)| { diff --git a/crates/fj-core/src/validation/validation_check.rs b/crates/fj-core/src/validation/validation_check.rs index cfe77fd6e..154536993 100644 --- a/crates/fj-core/src/validation/validation_check.rs +++ b/crates/fj-core/src/validation/validation_check.rs @@ -12,6 +12,7 @@ pub trait ValidationCheck: Sized { /// Run the validation check on the implementing object fn check( object: &T, + geometry: &Geometry, config: &ValidationConfig, ) -> impl Iterator; @@ -21,10 +22,10 @@ pub trait ValidationCheck: Sized { /// for use in unit tests), and thus always uses the default configuration. fn check_and_return_first_error( object: &T, - _: &Geometry, + geometry: &Geometry, ) -> Result<(), Self> { let config = ValidationConfig::default(); - let mut errors = Self::check(object, &config); + let mut errors = Self::check(object, geometry, &config); if let Some(err) = errors.next() { return Err(err); @@ -37,12 +38,12 @@ pub trait ValidationCheck: Sized { /// /// This method is designed for convenience over flexibility (it is intended /// for use in unit tests), and thus always uses the default configuration. - fn check_and_expect_one_error(object: &T, _: &Geometry) -> Self + fn check_and_expect_one_error(object: &T, geometry: &Geometry) -> Self where Self: Display, { let config = ValidationConfig::default(); - let mut errors = Self::check(object, &config).peekable(); + let mut errors = Self::check(object, geometry, &config).peekable(); let err = errors .next()