use serde::{Deserialize, Serialize};
use crate::types::LatLng;
use super::controls::Padding;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FlyToOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub center: Option<LatLng>,
#[serde(skip_serializing_if = "Option::is_none")]
pub zoom: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bearing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pitch: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub essential: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub padding: Option<Padding>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct EaseToOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub center: Option<LatLng>,
#[serde(skip_serializing_if = "Option::is_none")]
pub zoom: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bearing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pitch: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub padding: Option<Padding>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct JumpToOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub center: Option<LatLng>,
#[serde(skip_serializing_if = "Option::is_none")]
pub zoom: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bearing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pitch: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub padding: Option<Padding>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FitBoundsOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub padding: Option<Padding>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_zoom: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub linear: Option<bool>,
}