use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GeoJsonGeometry {
GeoJsonPoint(Box<models::GeoJsonPoint>),
GeoJsonLineString(Box<models::GeoJsonLineString>),
GeoJsonPolygon(Box<models::GeoJsonPolygon>),
GeoJsonMultiPoint(Box<models::GeoJsonMultiPoint>),
GeoJsonMultiLineString(Box<models::GeoJsonMultiLineString>),
GeoJsonMultiPolygon(Box<models::GeoJsonMultiPolygon>),
}
impl Default for GeoJsonGeometry {
fn default() -> Self {
Self::GeoJsonPoint(Default::default())
}
}
#[derive(
Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum Type {
#[serde(rename = "Point")]
#[default]
Point,
#[serde(rename = "LineString")]
LineString,
#[serde(rename = "Polygon")]
Polygon,
#[serde(rename = "MultiPoint")]
MultiPoint,
#[serde(rename = "MultiLineString")]
MultiLineString,
#[serde(rename = "MultiPolygon")]
MultiPolygon,
}