use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GeoDistance {
#[serde(rename = "location_anchor", skip_serializing_if = "Option::is_none")]
pub location_anchor: Option<Box<models::GeoDistanceLocationAnchor>>,
#[serde(rename = "location_source", skip_serializing_if = "Option::is_none")]
pub location_source: Option<String>,
#[serde(rename = "distance_type", skip_serializing_if = "Option::is_none")]
pub distance_type: Option<DistanceType>,
#[serde(rename = "distance", skip_serializing_if = "Option::is_none")]
pub distance: Option<String>,
}
impl GeoDistance {
pub fn new() -> GeoDistance {
GeoDistance {
location_anchor: None,
location_source: None,
distance_type: None,
distance: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DistanceType {
#[serde(rename = "adaptive")]
Adaptive,
#[serde(rename = "haversine")]
Haversine,
}
impl Default for DistanceType {
fn default() -> DistanceType {
Self::Adaptive
}
}