use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GeoJsonSourceOptions {
pub data: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster_radius: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster_max_zoom: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster_properties: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_id: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub promote_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct VectorSourceOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiles: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_zoom: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_zoom: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bounds: Option<[f64; 4]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub attribution: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RasterSourceOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiles: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tile_size: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_zoom: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_zoom: Option<u32>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RasterDemSourceOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiles: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tile_size: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub encoding: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ImageSourceOptions {
pub url: String,
pub coordinates: [[f64; 2]; 4],
}