geoarrow_array/geozero/export/scalar/
rect.rs1use geo_traits::RectTrait;
2use geozero::{GeomProcessor, GeozeroGeometry};
3
4use crate::builder::geo_trait_wrappers::RectWrapper;
5use crate::geozero::export::scalar::process_polygon;
6use crate::scalar::Rect;
7
8pub(crate) fn process_rect<P: GeomProcessor>(
9 geom: &impl RectTrait<T = f64>,
10 geom_idx: usize,
11 processor: &mut P,
12) -> geozero::error::Result<()> {
13 let polygon = RectWrapper::try_new(geom)
14 .map_err(|err| geozero::error::GeozeroError::Geometry(err.to_string()))?;
15 process_polygon(&polygon, true, geom_idx, processor)
16}
17
18impl GeozeroGeometry for Rect<'_> {
19 fn process_geom<P: GeomProcessor>(&self, processor: &mut P) -> geozero::error::Result<()>
20 where
21 Self: Sized,
22 {
23 process_rect(self, 0, processor)
24 }
25}