geoarrow_array/geozero/export/array/
geometry.rs1use geozero::{GeomProcessor, GeozeroGeometry};
2
3use crate::array::GeometryArray;
4use crate::geozero::export::scalar::process_geometry;
5use crate::{GeoArrowArray, GeoArrowArrayAccessor};
6
7impl GeozeroGeometry for GeometryArray {
8 fn process_geom<P: GeomProcessor>(&self, processor: &mut P) -> geozero::error::Result<()>
9 where
10 Self: Sized,
11 {
12 let num_geometries = self.len();
13 processor.geometrycollection_begin(num_geometries, 0)?;
14
15 for geom_idx in 0..num_geometries {
16 process_geometry(&self.value(geom_idx).unwrap(), geom_idx, processor)?;
17 }
18
19 processor.geometrycollection_end(num_geometries - 1)?;
20 Ok(())
21 }
22}