#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use crate::VerticalDistance;
use geo::Point;
use super::*;
#[derive(Clone, PartialEq, Debug)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Airport {
pub(crate) icao_ident: String,
pub(crate) iata_designator: String,
pub(crate) name: String,
pub(crate) coordinate: Point<f64>,
pub(crate) mag_var: Option<MagneticVariation>,
pub(crate) elevation: VerticalDistance,
pub(crate) runways: Vec<Runway>,
pub(crate) location: Option<LocationIndicator>,
pub(crate) cycle: Option<AiracCycle>,
}
impl Fix for Airport {
fn ident(&self) -> String {
self.icao_ident.clone()
}
fn coordinate(&self) -> Point<f64> {
self.coordinate
}
}