ogcapi-types 0.3.0

Types as defined by various OGC API Standards.
Documentation
use serde::{Deserialize, Serialize};
use serde_json::{Map, Value};

#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Coverage {
    pub r#type: CoverageType,
    pub domain: Domain,
    #[serde(default, skip_serializing_if = "Map::is_empty")]
    pub parameters: Map<String, Value>,
    #[serde(default, skip_serializing_if = "Map::is_empty")]
    pub ranges: Map<String, Value>,
}

#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Domain {
    pub r#type: String,
    pub domain_type: Option<DomainType>,
    pub axes: Map<String, Value>,
    pub referencing: Vec<Value>,
}

#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub enum CoverageType {
    Domain,
    NdArray,
    TiledNdArray,
    Coverage,
    CoverageCollection,
}

#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub enum DomainType {
    Grid,
    VerticalProfile,
    PointSeries,
    Point,
    MultiPointSeries,
    MultiPoint,
    PolygonSeries,
    Polygon,
    MultiPolygonSeries,
    MultiPolygon,
    Trajectory,
    Section,
}