pub use tileset::*;
pub use tms::*;
mod tileset;
mod tms;
use serde::{Deserialize, Serialize};
use serde_with::DisplayFromStr;
use crate::common::Crs;
type Point2D = [f64; 2];
pub type OrderedAxes = Vec<String>;
#[serde_with::serde_as]
#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TitleDescriptionKeywords {
pub title: Option<String>,
pub description: Option<String>,
pub keywords: Option<Vec<String>>,
}
#[derive(Deserialize)]
pub struct Query {
pub collections: Option<String>,
}
#[serde_with::serde_as]
#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct BoundingBox2D {
pub lower_left: Point2D,
pub upper_right: Point2D,
#[serde(default)]
#[serde_as(as = "Option<DisplayFromStr>")]
pub crs: Option<Crs>,
pub ordered_axes: Option<OrderedAxes>,
}