use crate::models;
use serde::{Deserialize, Serialize};
use super::ValueUnit;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ObservationStation {
#[serde(rename = "@context", skip_serializing_if = "Option::is_none")]
pub at_context: Option<Box<models::JsonLdContext>>,
#[serde(
rename = "geometry",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub geometry: Option<Option<String>>,
#[serde(rename = "@id", skip_serializing_if = "Option::is_none")]
pub at_id: Option<String>,
#[serde(rename = "@type", skip_serializing_if = "Option::is_none")]
pub at_type: Option<AtType>,
#[serde(rename = "elevation", skip_serializing_if = "Option::is_none")]
pub elevation: Option<ValueUnit>,
#[serde(rename = "stationIdentifier", skip_serializing_if = "Option::is_none")]
pub station_identifier: Option<String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "timeZone", skip_serializing_if = "Option::is_none")]
pub time_zone: Option<String>,
#[serde(rename = "forecast", skip_serializing_if = "Option::is_none")]
pub forecast: Option<String>,
#[serde(rename = "county", skip_serializing_if = "Option::is_none")]
pub county: Option<String>,
#[serde(rename = "fireWeatherZone", skip_serializing_if = "Option::is_none")]
pub fire_weather_zone: Option<String>,
#[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(rename = "subProvider", skip_serializing_if = "Option::is_none")]
pub sub_provider: Option<String>,
#[serde(rename = "distance", skip_serializing_if = "Option::is_none")]
pub distance: Option<models::QuantitativeValue>,
#[serde(rename = "bearing", skip_serializing_if = "Option::is_none")]
pub bearing: Option<models::QuantitativeValue>,
}
impl ObservationStation {
pub fn new() -> ObservationStation {
ObservationStation {
at_context: None,
geometry: None,
at_id: None,
at_type: None,
elevation: None,
station_identifier: None,
name: None,
time_zone: None,
forecast: None,
county: None,
fire_weather_zone: None,
provider: None,
sub_provider: None,
distance: None,
bearing: None,
}
}
}
#[derive(
Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum AtType {
#[serde(rename = "wx:ObservationStation")]
#[default]
WxColonObservationStation,
}