You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sedona.apache.org by pa...@apache.org on 2026/09/14 03:06:13 UTC

(sedona-db) branch main updated: chore(rust/sedona-geo-generic-alg): migrate to Rust 2024 edition (#1276)

This is an automated email from the ASF dual-hosted git repository.

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-db.git


The following commit(s) were added to refs/heads/main by this push:
     new 512e82e99 chore(rust/sedona-geo-generic-alg): migrate to Rust 2024 edition (#1276)
512e82e99 is described below

commit 512e82e994ebe13da9994c453cad83ae78c3bbef
Author: Dewey Dunnington <de...@dunnington.ca>
AuthorDate: Sun Sep 13 22:06:07 2026 -0500

    chore(rust/sedona-geo-generic-alg): migrate to Rust 2024 edition (#1276)
---
 rust/sedona-geo-generic-alg/Cargo.toml             |  2 +-
 rust/sedona-geo-generic-alg/benches/area.rs        |  2 +-
 rust/sedona-geo-generic-alg/benches/centroid.rs    |  2 +-
 rust/sedona-geo-generic-alg/benches/distance.rs    |  4 +-
 .../sedona-geo-generic-alg/benches/intersection.rs |  8 +-
 rust/sedona-geo-generic-alg/benches/length.rs      |  2 +-
 rust/sedona-geo-generic-alg/benches/perimeter.rs   |  4 +-
 rust/sedona-geo-generic-alg/src/algorithm/area.rs  |  8 +-
 .../src/algorithm/bounding_rect.rs                 | 10 +--
 .../src/algorithm/centroid.rs                      |  6 +-
 .../src/algorithm/coordinate_position.rs           | 10 +--
 .../src/algorithm/euclidean_length.rs              | 14 ++--
 .../src/algorithm/intersects/collections.rs        |  2 +-
 .../src/algorithm/intersects/line.rs               |  2 +-
 .../src/algorithm/intersects/line_string.rs        |  2 +-
 .../src/algorithm/intersects/mod.rs                | 47 +++++++-----
 .../src/algorithm/intersects/polygon.rs            |  4 +-
 .../src/algorithm/kernels/mod.rs                   |  2 +-
 .../src/algorithm/kernels/robust.rs                |  2 +-
 .../src/algorithm/line_measures/length.rs          |  4 +-
 .../line_measures/metric_spaces/euclidean/utils.rs | 86 +++++++++++-----------
 .../src/algorithm/map_coords.rs                    |  8 +-
 rust/sedona-geo-generic-alg/src/lib.rs             |  2 +-
 rust/sedona-geo-generic-alg/src/utils.rs           | 12 +--
 24 files changed, 118 insertions(+), 127 deletions(-)

diff --git a/rust/sedona-geo-generic-alg/Cargo.toml b/rust/sedona-geo-generic-alg/Cargo.toml
index d53cb6b4b..c6332ca52 100644
--- a/rust/sedona-geo-generic-alg/Cargo.toml
+++ b/rust/sedona-geo-generic-alg/Cargo.toml
@@ -24,7 +24,7 @@ homepage.workspace = true
 repository.workspace = true
 description.workspace = true
 readme.workspace = true
-edition.workspace = true
+edition = "2024"
 rust-version.workspace = true
 
 [dependencies]
diff --git a/rust/sedona-geo-generic-alg/benches/area.rs b/rust/sedona-geo-generic-alg/benches/area.rs
index b69a45681..d7e60112e 100644
--- a/rust/sedona-geo-generic-alg/benches/area.rs
+++ b/rust/sedona-geo-generic-alg/benches/area.rs
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use geo_traits::to_geo::ToGeoGeometry;
 use sedona_geo_generic_alg::Area;
 use sedona_geo_generic_alg::Polygon;
diff --git a/rust/sedona-geo-generic-alg/benches/centroid.rs b/rust/sedona-geo-generic-alg/benches/centroid.rs
index 7741a5c07..f3d12a60f 100644
--- a/rust/sedona-geo-generic-alg/benches/centroid.rs
+++ b/rust/sedona-geo-generic-alg/benches/centroid.rs
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use geo_traits::to_geo::ToGeoGeometry;
 use sedona_geo_generic_alg::Centroid;
 use sedona_geo_generic_alg::Polygon;
diff --git a/rust/sedona-geo-generic-alg/benches/distance.rs b/rust/sedona-geo-generic-alg/benches/distance.rs
index 46949e419..416008fde 100644
--- a/rust/sedona-geo-generic-alg/benches/distance.rs
+++ b/rust/sedona-geo-generic-alg/benches/distance.rs
@@ -14,10 +14,10 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use geo::{Distance as GeoDistance, Euclidean};
 use sedona_geo_generic_alg::algorithm::line_measures::DistanceExt;
-use sedona_geo_generic_alg::{coord, LineString, MultiPolygon, Point, Polygon};
+use sedona_geo_generic_alg::{LineString, MultiPolygon, Point, Polygon, coord};
 
 #[path = "utils/wkb_util.rs"]
 mod wkb_util;
diff --git a/rust/sedona-geo-generic-alg/benches/intersection.rs b/rust/sedona-geo-generic-alg/benches/intersection.rs
index a544155bb..5d85d0961 100644
--- a/rust/sedona-geo-generic-alg/benches/intersection.rs
+++ b/rust/sedona-geo-generic-alg/benches/intersection.rs
@@ -14,12 +14,12 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use geo::Triangle;
 use geo_traits::to_geo::ToGeoGeometry;
 use geo_types::Geometry;
 use sedona_geo_generic_alg::MultiPolygon;
-use sedona_geo_generic_alg::{intersects::Intersects, Centroid};
+use sedona_geo_generic_alg::{Centroid, intersects::Intersects};
 
 #[path = "utils/wkb_util.rs"]
 mod wkb_util;
@@ -320,8 +320,8 @@ fn point_polygon_intersection_wkb_conv(c: &mut Criterion) {
 }
 
 fn rect_intersection(c: &mut Criterion) {
-    use sedona_geo_generic_alg::algorithm::BoundingRect;
     use sedona_geo_generic_alg::Rect;
+    use sedona_geo_generic_alg::algorithm::BoundingRect;
     let plot_bbox: Vec<Rect> = sedona_testing::fixtures::nl_plots_wgs84()
         .iter()
         .map(|plot| plot.bounding_rect().unwrap())
@@ -437,7 +437,7 @@ fn point_triangle_intersection(c: &mut Criterion) {
 }
 
 fn linestring_polygon_intersection(c: &mut Criterion) {
-    use geo::{coord, line_string, LineString, Polygon, Rect};
+    use geo::{LineString, Polygon, Rect, coord, line_string};
     c.bench_function("LineString above Polygon", |bencher| {
         let ls = line_string![
             coord! {x:0., y:1.},
diff --git a/rust/sedona-geo-generic-alg/benches/length.rs b/rust/sedona-geo-generic-alg/benches/length.rs
index 4ddd94cfb..a7775c725 100644
--- a/rust/sedona-geo-generic-alg/benches/length.rs
+++ b/rust/sedona-geo-generic-alg/benches/length.rs
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use geo_traits::to_geo::ToGeoGeometry;
 use sedona_geo_generic_alg::algorithm::line_measures::{Euclidean, LengthMeasurableExt};
 
diff --git a/rust/sedona-geo-generic-alg/benches/perimeter.rs b/rust/sedona-geo-generic-alg/benches/perimeter.rs
index 85b20ec73..566588de3 100644
--- a/rust/sedona-geo-generic-alg/benches/perimeter.rs
+++ b/rust/sedona-geo-generic-alg/benches/perimeter.rs
@@ -14,10 +14,10 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use geo_traits::to_geo::ToGeoGeometry;
-use sedona_geo_generic_alg::algorithm::line_measures::{Euclidean, LengthMeasurableExt};
 use sedona_geo_generic_alg::Polygon;
+use sedona_geo_generic_alg::algorithm::line_measures::{Euclidean, LengthMeasurableExt};
 
 #[path = "utils/wkb_util.rs"]
 mod wkb_util;
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/area.rs b/rust/sedona-geo-generic-alg/src/algorithm/area.rs
index f9f1de1f1..7dfeb6ad5 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/area.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/area.rs
@@ -189,11 +189,7 @@ where
                     total - get_linestring_area(&next).abs()
                 });
 
-                if is_negative {
-                    -area
-                } else {
-                    area
-                }
+                if is_negative { -area } else { area }
             }
             None => T::zero(),
         }
@@ -347,7 +343,7 @@ where
 #[cfg(test)]
 mod test {
     use crate::Area;
-    use crate::{coord, polygon, wkt, Line, MultiPolygon, Polygon, Rect, Triangle};
+    use crate::{Line, MultiPolygon, Polygon, Rect, Triangle, coord, polygon, wkt};
 
     // Area of the polygon
     #[test]
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/bounding_rect.rs b/rust/sedona-geo-generic-alg/src/algorithm/bounding_rect.rs
index 2b04cb66e..34a02e46d 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/bounding_rect.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/bounding_rect.rs
@@ -20,7 +20,7 @@
 //! <https://github.com/georust/geo/blob/5d667f844716a3d0a17aa60bc0a58528cb5808c3/geo/src/algorithm/bounding_rect.rs>.
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
 use crate::utils::{partial_max, partial_min};
-use crate::{coord, geometry::*, CoordNum};
+use crate::{CoordNum, coord, geometry::*};
 use core::borrow::Borrow;
 use geo_types::private_utils::get_bounding_rect;
 use sedona_geo_traits_ext::*;
@@ -285,15 +285,15 @@ fn bounding_rect_merge<T: CoordNum>(a: Rect<T>, b: Rect<T>) -> Rect<T> {
 mod test {
     use core::f64;
 
-    use wkb::writer::WriteOptions;
     use wkb::Endianness;
+    use wkb::writer::WriteOptions;
 
     use super::bounding_rect_merge;
-    use crate::line_string;
     use crate::BoundingRect;
+    use crate::line_string;
     use crate::{
-        coord, point, polygon, Geometry, GeometryCollection, Line, LineString, MultiLineString,
-        MultiPoint, MultiPolygon, Polygon, Rect,
+        Geometry, GeometryCollection, Line, LineString, MultiLineString, MultiPoint, MultiPolygon,
+        Polygon, Rect, coord, point, polygon,
     };
 
     #[test]
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/centroid.rs b/rust/sedona-geo-generic-alg/src/algorithm/centroid.rs
index 18d197c1f..0f674d7c4 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/centroid.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/centroid.rs
@@ -24,12 +24,12 @@ use std::cmp::Ordering;
 
 use sedona_geo_traits_ext::*;
 
-use crate::area::{get_linestring_area, Area};
+use crate::GeoFloat;
+use crate::area::{Area, get_linestring_area};
 use crate::dimensions::{Dimensions, Dimensions::*, HasDimensions};
 use crate::geometry::*;
-use crate::line_measures::metric_spaces::euclidean::Euclidean;
 use crate::line_measures::LengthMeasurableExt;
-use crate::GeoFloat;
+use crate::line_measures::metric_spaces::euclidean::Euclidean;
 
 /// Calculation of the centroid.
 /// The centroid is the arithmetic mean position of all points in the shape.
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/coordinate_position.rs b/rust/sedona-geo-generic-alg/src/algorithm/coordinate_position.rs
index aaef5510e..aad538e61 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/coordinate_position.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/coordinate_position.rs
@@ -22,10 +22,10 @@
 use core::borrow::Borrow;
 use std::cmp::Ordering;
 
+use crate::GeoNum;
 use crate::geometry::*;
 use crate::intersects::{point_in_rect, value_in_between};
 use crate::kernels::*;
-use crate::GeoNum;
 use crate::{BoundingRect, HasDimensions, Intersects};
 use sedona_geo_traits_ext::*;
 
@@ -149,10 +149,10 @@ where
         is_inside: &mut bool,
         _boundary_count: &mut usize,
     ) {
-        if let Some(point_coord) = self.geo_coord() {
-            if &point_coord == coord {
-                *is_inside = true;
-            }
+        if let Some(point_coord) = self.geo_coord()
+            && &point_coord == coord
+        {
+            *is_inside = true;
         }
     }
 }
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/euclidean_length.rs b/rust/sedona-geo-generic-alg/src/algorithm/euclidean_length.rs
index 3acb3b9de..1702ca9cd 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/euclidean_length.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/euclidean_length.rs
@@ -224,10 +224,10 @@ where
 
 #[cfg(test)]
 mod test {
-    use crate::line_string;
     #[allow(deprecated)]
     use crate::EuclideanLength;
-    use crate::{coord, Line, MultiLineString};
+    use crate::line_string;
+    use crate::{Line, MultiLineString, coord};
 
     #[allow(deprecated)]
     #[test]
@@ -285,7 +285,7 @@ mod test {
     #[allow(deprecated)]
     #[test]
     fn polygon_returns_zero_test() {
-        use crate::{polygon, Polygon};
+        use crate::{Polygon, polygon};
         let polygon: Polygon<f64> = polygon![
             (x: 0., y: 0.),
             (x: 4., y: 0.),
@@ -309,10 +309,10 @@ mod test {
     #[allow(deprecated)]
     #[test]
     fn comprehensive_test_scenarios() {
-        use crate::{line_string, polygon};
         use crate::{
             Geometry, GeometryCollection, MultiLineString, MultiPoint, MultiPolygon, Point,
         };
+        use crate::{line_string, polygon};
 
         // Test cases matching the Python pytest scenarios
 
@@ -486,7 +486,7 @@ mod test {
     #[test]
     fn test_multipolygon_double_unit_squares() {
         // MULTIPOLYGON (((0 0, 1 0, 1 1, 0 1, 0 0)), ((0 0, 1 0, 1 1, 0 1, 0 0))) -> 0
-        use crate::{polygon, MultiPolygon};
+        use crate::{MultiPolygon, polygon};
         let multipolygon = MultiPolygon::new(vec![
             polygon![
                 (x: 0., y: 0.),
@@ -511,7 +511,7 @@ mod test {
     fn test_geometrycollection_mixed() {
         // GEOMETRYCOLLECTION (LINESTRING (0 0, 1 1), POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0)), LINESTRING (0 0, 1 1))
         // Expected: 2.8284271247461903 (only linestrings contribute)
-        use crate::{polygon, Geometry, GeometryCollection};
+        use crate::{Geometry, GeometryCollection, polygon};
         let collection = GeometryCollection::new_from(vec![
             Geometry::LineString(line_string![(x: 0., y: 0.), (x: 1., y: 1.)]), // sqrt(2) ≈ 1.4142135623730951
             Geometry::Polygon(polygon![
@@ -544,7 +544,7 @@ mod test {
         // Exact match for the Python pytest scenario:
         // GEOMETRYCOLLECTION (LINESTRING (0 0, 1 1), POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0)), LINESTRING (0 0, 1 1))
         // Expected: 2.8284271247461903
-        use crate::{polygon, Geometry, GeometryCollection};
+        use crate::{Geometry, GeometryCollection, polygon};
 
         let collection = GeometryCollection::new_from(vec![
             // LINESTRING (0 0, 1 1) - length = sqrt(2) ≈ 1.4142135623730951
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/intersects/collections.rs b/rust/sedona-geo-generic-alg/src/algorithm/intersects/collections.rs
index 1bf2385d5..6ef6c7b23 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/intersects/collections.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/intersects/collections.rs
@@ -22,8 +22,8 @@
 use core::borrow::Borrow;
 use sedona_geo_traits_ext::*;
 
-use super::has_disjoint_bboxes;
 use super::IntersectsTrait;
+use super::has_disjoint_bboxes;
 use crate::GeoNum;
 
 macro_rules! impl_intersects_geometry {
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/intersects/line.rs b/rust/sedona-geo-generic-alg/src/algorithm/intersects/line.rs
index 3939d9cab..3baa6633b 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/intersects/line.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/intersects/line.rs
@@ -21,7 +21,7 @@
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
 use sedona_geo_traits_ext::*;
 
-use super::{point_in_rect, IntersectsTrait};
+use super::{IntersectsTrait, point_in_rect};
 use crate::*;
 
 impl<T, LHS, RHS> IntersectsTrait<LineTag, CoordTag, RHS> for LHS
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/intersects/line_string.rs b/rust/sedona-geo-generic-alg/src/algorithm/intersects/line_string.rs
index 7a39fadf0..22dad6169 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/intersects/line_string.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/intersects/line_string.rs
@@ -21,7 +21,7 @@
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
 use sedona_geo_traits_ext::*;
 
-use super::{has_disjoint_bboxes, IntersectsTrait};
+use super::{IntersectsTrait, has_disjoint_bboxes};
 use crate::*;
 
 // Generate implementations for LineString<T> by delegating to Line<T>
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/intersects/mod.rs b/rust/sedona-geo-generic-alg/src/algorithm/intersects/mod.rs
index cfab5c747..f7e009222 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/intersects/mod.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/intersects/mod.rs
@@ -145,12 +145,11 @@ where
     B: BoundingRect<T>,
 {
     let mut disjoint_bbox = false;
-    if let Some(a_bbox) = a.bounding_rect().into() {
-        if let Some(b_bbox) = b.bounding_rect().into() {
-            if !a_bbox.intersects(&b_bbox) {
-                disjoint_bbox = true;
-            }
-        }
+    if let Some(a_bbox) = a.bounding_rect().into()
+        && let Some(b_bbox) = b.bounding_rect().into()
+        && !a_bbox.intersects(&b_bbox)
+    {
+        disjoint_bbox = true;
     }
     disjoint_bbox
 }
@@ -161,8 +160,8 @@ mod test {
 
     use crate::Intersects;
     use crate::{
-        coord, line_string, polygon, Geometry, Line, LineString, MultiLineString, MultiPoint,
-        MultiPolygon, Point, Polygon, Rect,
+        Geometry, Line, LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon,
+        Rect, coord, line_string, polygon,
     };
 
     /// Tests: intersection LineString and LineString
@@ -428,27 +427,35 @@ mod test {
 
         assert!(bounding_rect_xl.to_polygon().intersects(&bounding_rect_sm));
         assert!(bounding_rect_xl.intersects(&bounding_rect_sm.to_polygon()));
-        assert!(bounding_rect_xl
-            .to_polygon()
-            .intersects(&bounding_rect_sm.to_polygon()));
+        assert!(
+            bounding_rect_xl
+                .to_polygon()
+                .intersects(&bounding_rect_sm.to_polygon())
+        );
 
         assert!(bounding_rect_sm.to_polygon().intersects(&bounding_rect_xl));
         assert!(bounding_rect_sm.intersects(&bounding_rect_xl.to_polygon()));
-        assert!(bounding_rect_sm
-            .to_polygon()
-            .intersects(&bounding_rect_xl.to_polygon()));
+        assert!(
+            bounding_rect_sm
+                .to_polygon()
+                .intersects(&bounding_rect_xl.to_polygon())
+        );
 
         assert!(bounding_rect_sm.to_polygon().intersects(&bounding_rect_s2));
         assert!(bounding_rect_sm.intersects(&bounding_rect_s2.to_polygon()));
-        assert!(bounding_rect_sm
-            .to_polygon()
-            .intersects(&bounding_rect_s2.to_polygon()));
+        assert!(
+            bounding_rect_sm
+                .to_polygon()
+                .intersects(&bounding_rect_s2.to_polygon())
+        );
 
         assert!(bounding_rect_s2.to_polygon().intersects(&bounding_rect_sm));
         assert!(bounding_rect_s2.intersects(&bounding_rect_sm.to_polygon()));
-        assert!(bounding_rect_s2
-            .to_polygon()
-            .intersects(&bounding_rect_sm.to_polygon()));
+        assert!(
+            bounding_rect_s2
+                .to_polygon()
+                .intersects(&bounding_rect_sm.to_polygon())
+        );
     }
     #[test]
     fn point_intersects_line_test() {
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/intersects/polygon.rs b/rust/sedona-geo-generic-alg/src/algorithm/intersects/polygon.rs
index 25fbe5042..52c5f4e5e 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/intersects/polygon.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/intersects/polygon.rs
@@ -19,10 +19,10 @@
 //! Ported (and contains copied code) from `geo::algorithm::intersects::polygon`:
 //! <https://github.com/georust/geo/blob/f2326a3dd1fa9ff39d3e65618eb7ca2bacad2c0c/geo/src/algorithm/intersects/polygon.rs>.
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
-use super::{has_disjoint_bboxes, IntersectsTrait};
-use crate::coordinate_position::CoordPos;
+use super::{IntersectsTrait, has_disjoint_bboxes};
 use crate::CoordinatePosition;
 use crate::GeoNum;
+use crate::coordinate_position::CoordPos;
 use sedona_geo_traits_ext::*;
 
 impl<T, LHS, RHS> IntersectsTrait<PolygonTag, CoordTag, RHS> for LHS
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/kernels/mod.rs b/rust/sedona-geo-generic-alg/src/algorithm/kernels/mod.rs
index 86d11a60c..5b5ef6d41 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/kernels/mod.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/kernels/mod.rs
@@ -21,7 +21,7 @@
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
 use num_traits::Zero;
 
-use crate::{coord, Coord, CoordNum};
+use crate::{Coord, CoordNum, coord};
 
 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
 pub enum Orientation {
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/kernels/robust.rs b/rust/sedona-geo-generic-alg/src/algorithm/kernels/robust.rs
index 2a63e8988..7616c4710 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/kernels/robust.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/kernels/robust.rs
@@ -37,7 +37,7 @@ where
     T: CoordNum + Float,
 {
     fn orient2d(p: Coord<T>, q: Coord<T>, r: Coord<T>) -> Orientation {
-        use robust::{orient2d, Coord};
+        use robust::{Coord, orient2d};
 
         let orientation = orient2d(
             Coord {
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/line_measures/length.rs b/rust/sedona-geo-generic-alg/src/algorithm/line_measures/length.rs
index 4c458936d..f0605be9c 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/line_measures/length.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/line_measures/length.rs
@@ -384,8 +384,8 @@ mod tests {
 
         use super::*;
         use crate::{
-            coord, line_string, polygon, Geometry, GeometryCollection, Line, MultiLineString,
-            MultiPoint, MultiPolygon, Point, Polygon,
+            Geometry, GeometryCollection, Line, MultiLineString, MultiPoint, MultiPolygon, Point,
+            Polygon, coord, line_string, polygon,
         };
 
         #[test]
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/line_measures/metric_spaces/euclidean/utils.rs b/rust/sedona-geo-generic-alg/src/algorithm/line_measures/metric_spaces/euclidean/utils.rs
index 0b835f523..a702af63c 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/line_measures/metric_spaces/euclidean/utils.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/line_measures/metric_spaces/euclidean/utils.rs
@@ -20,7 +20,7 @@
 //! <https://github.com/georust/geo/blob/5d667f844716a3d0a17aa60bc0a58528cb5808c3/geo/src/algorithm/line_measures/metric_spaces/euclidean/utils.rs>.
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
 use crate::algorithm::Intersects;
-use crate::coordinate_position::{coord_pos_relative_to_ring, CoordPos};
+use crate::coordinate_position::{CoordPos, coord_pos_relative_to_ring};
 use crate::geometry::*;
 use crate::{CoordFloat, GeoFloat, GeoNum};
 use geo_traits::{CoordTrait, LineStringTrait};
@@ -586,68 +586,64 @@ where
 
         // Symmetric containment logic matching concrete implementation exactly
         // Check if polygon_b is contained within polygon_a (has holes)
-        if has_interiors1 {
-            if let Some(first_coord_b) = ext2.coords_ext().next() {
-                let ext1_ls = LineString::from(
-                    ext1.coords_ext()
+        if has_interiors1 && let Some(first_coord_b) = ext2.coords_ext().next() {
+            let ext1_ls = LineString::from(
+                ext1.coords_ext()
+                    .map(|c| (c.x(), c.y()))
+                    .collect::<Vec<_>>(),
+            );
+
+            let coord_b = Coord::from((first_coord_b.x(), first_coord_b.y()));
+            if ring_contains_coord(&ext1_ls, coord_b) {
+                // polygon_b is inside polygon_a: check distance to polygon_a's holes
+                let ext2_concrete = LineString::from(
+                    ext2.coords_ext()
                         .map(|c| (c.x(), c.y()))
                         .collect::<Vec<_>>(),
                 );
 
-                let coord_b = Coord::from((first_coord_b.x(), first_coord_b.y()));
-                if ring_contains_coord(&ext1_ls, coord_b) {
-                    // polygon_b is inside polygon_a: check distance to polygon_a's holes
-                    let ext2_concrete = LineString::from(
-                        ext2.coords_ext()
+                let mut mindist: F = Float::max_value();
+                for ring in polygon1.interiors_ext() {
+                    let ring_concrete = LineString::from(
+                        ring.coords_ext()
                             .map(|c| (c.x(), c.y()))
                             .collect::<Vec<_>>(),
                     );
-
-                    let mut mindist: F = Float::max_value();
-                    for ring in polygon1.interiors_ext() {
-                        let ring_concrete = LineString::from(
-                            ring.coords_ext()
-                                .map(|c| (c.x(), c.y()))
-                                .collect::<Vec<_>>(),
-                        );
-                        mindist =
-                            mindist.min(nearest_neighbour_distance(&ext2_concrete, &ring_concrete));
-                    }
-                    return mindist;
+                    mindist =
+                        mindist.min(nearest_neighbour_distance(&ext2_concrete, &ring_concrete));
                 }
+                return mindist;
             }
         }
 
         // Check if polygon_a is contained within polygon_b (has holes)
-        if has_interiors2 {
-            if let Some(first_coord_a) = ext1.coords_ext().next() {
-                let ext2_ls = LineString::from(
-                    ext2.coords_ext()
+        if has_interiors2 && let Some(first_coord_a) = ext1.coords_ext().next() {
+            let ext2_ls = LineString::from(
+                ext2.coords_ext()
+                    .map(|c| (c.x(), c.y()))
+                    .collect::<Vec<_>>(),
+            );
+
+            let coord_a = Coord::from((first_coord_a.x(), first_coord_a.y()));
+            if ring_contains_coord(&ext2_ls, coord_a) {
+                // polygon_a is inside polygon_b: check distance to polygon_b's holes
+                let ext1_concrete = LineString::from(
+                    ext1.coords_ext()
                         .map(|c| (c.x(), c.y()))
                         .collect::<Vec<_>>(),
                 );
 
-                let coord_a = Coord::from((first_coord_a.x(), first_coord_a.y()));
-                if ring_contains_coord(&ext2_ls, coord_a) {
-                    // polygon_a is inside polygon_b: check distance to polygon_b's holes
-                    let ext1_concrete = LineString::from(
-                        ext1.coords_ext()
+                let mut mindist: F = Float::max_value();
+                for ring in polygon2.interiors_ext() {
+                    let ring_concrete = LineString::from(
+                        ring.coords_ext()
                             .map(|c| (c.x(), c.y()))
                             .collect::<Vec<_>>(),
                     );
-
-                    let mut mindist: F = Float::max_value();
-                    for ring in polygon2.interiors_ext() {
-                        let ring_concrete = LineString::from(
-                            ring.coords_ext()
-                                .map(|c| (c.x(), c.y()))
-                                .collect::<Vec<_>>(),
-                        );
-                        mindist =
-                            mindist.min(nearest_neighbour_distance(&ext1_concrete, &ring_concrete));
-                    }
-                    return mindist;
+                    mindist =
+                        mindist.min(nearest_neighbour_distance(&ext1_concrete, &ring_concrete));
                 }
+                return mindist;
             }
         }
 
@@ -737,7 +733,7 @@ symmetric_distance_generic_impl!(
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::{coord, Line, LineString, Point, Polygon, Triangle};
+    use crate::{Line, LineString, Point, Polygon, Triangle, coord};
     use approx::assert_relative_eq;
     use geo::algorithm::line_measures::{Distance, Euclidean};
 
@@ -2321,7 +2317,7 @@ mod tests {
     #[test]
     fn test_line_segment_distance_algorithm_equivalence() {
         // Test that the updated generic algorithm produces identical results to concrete
-        use geo_types::{coord, Line, Point};
+        use geo_types::{Line, Point, coord};
 
         // Test cases covering different scenarios
         let test_cases = vec![
diff --git a/rust/sedona-geo-generic-alg/src/algorithm/map_coords.rs b/rust/sedona-geo-generic-alg/src/algorithm/map_coords.rs
index 815bc0eb9..992afc409 100644
--- a/rust/sedona-geo-generic-alg/src/algorithm/map_coords.rs
+++ b/rust/sedona-geo-generic-alg/src/algorithm/map_coords.rs
@@ -19,12 +19,12 @@
 //! Ported (and contains copied code) from `geo::algorithm::map_coords`:
 //! <https://github.com/georust/geo/blob/f2326a3dd1fa9ff39d3e65618eb7ca2bacad2c0c/geo/src/algorithm/map_coords.rs>.
 //! Original code is dual-licensed under Apache-2.0 or MIT; used here under Apache-2.0.
-pub(crate) use crate::geometry::*;
 pub(crate) use crate::CoordNum;
+pub(crate) use crate::geometry::*;
 
+use Coord;
 use core::borrow::Borrow;
 use sedona_geo_traits_ext::*;
-use Coord;
 
 /// Map a function over all the coordinates in an object, returning a new one
 pub trait MapCoords<T: CoordNum, NT: CoordNum> {
@@ -799,8 +799,8 @@ impl<T: CoordNum> MapCoordsInPlace<T> for Triangle<T> {
 mod test {
     use super::{MapCoords, MapCoordsInPlace};
     use crate::{
-        coord, polygon, Coord, Geometry, GeometryCollection, Line, LineString, MultiLineString,
-        MultiPoint, MultiPolygon, Point, Polygon, Rect,
+        Coord, Geometry, GeometryCollection, Line, LineString, MultiLineString, MultiPoint,
+        MultiPolygon, Point, Polygon, Rect, coord, polygon,
     };
 
     #[test]
diff --git a/rust/sedona-geo-generic-alg/src/lib.rs b/rust/sedona-geo-generic-alg/src/lib.rs
index 6f9815427..5905b01f4 100644
--- a/rust/sedona-geo-generic-alg/src/lib.rs
+++ b/rust/sedona-geo-generic-alg/src/lib.rs
@@ -26,7 +26,7 @@
 pub use crate::algorithm::*;
 use std::cmp::Ordering;
 
-pub use geo_types::{coord, line_string, point, polygon, wkt, CoordFloat, CoordNum};
+pub use geo_types::{CoordFloat, CoordNum, coord, line_string, point, polygon, wkt};
 
 pub mod geometry;
 pub use geometry::*;
diff --git a/rust/sedona-geo-generic-alg/src/utils.rs b/rust/sedona-geo-generic-alg/src/utils.rs
index a4029266c..cb9a4bc63 100644
--- a/rust/sedona-geo-generic-alg/src/utils.rs
+++ b/rust/sedona-geo-generic-alg/src/utils.rs
@@ -24,20 +24,12 @@
 
 // The Rust standard library has `max` for `Ord`, but not for `PartialOrd`
 pub fn partial_max<T: PartialOrd>(a: T, b: T) -> T {
-    if a > b {
-        a
-    } else {
-        b
-    }
+    if a > b { a } else { b }
 }
 
 // The Rust standard library has `min` for `Ord`, but not for `PartialOrd`
 pub fn partial_min<T: PartialOrd>(a: T, b: T) -> T {
-    if a < b {
-        a
-    } else {
-        b
-    }
+    if a < b { a } else { b }
 }
 
 #[cfg(test)]