// Ported from georust/geo-types
// https://github.com/georust/geo/blob/main/geo-types/src/geometry/geometry_collection.rs
///|
/// A collection of `Geometry` values. Useful for representing heterogeneous
/// collections (the GeoJSON `GeometryCollection`).
pub struct GeometryCollection {
geometries : Array[Geometry]
} derive(Eq, Debug, Default)
///|
pub fn GeometryCollection::GeometryCollection(
geometries : Array[Geometry],
) -> GeometryCollection {
GeometryCollection::{ geometries, }
}
///|
/// Creates an empty `GeometryCollection`. Mirrors Rust
/// `geo_types::GeometryCollection::empty`.
pub fn GeometryCollection::empty() -> GeometryCollection {
GeometryCollection::GeometryCollection([])
}
///|
pub fn GeometryCollection::geometries(
self : GeometryCollection,
) -> Array[Geometry] {
self.geometries
}
///|
pub impl HasLength for GeometryCollection with fn length(self) {
self.geometries.length()
}
///|
pub impl IsEmpty for GeometryCollection with fn is_empty(self) {
self.geometries.length() == 0
}
///|
pub extend GeometryCollection with HasLength::{length}
///|
pub extend GeometryCollection with IsEmpty::{is_empty}