use std::borrow::Cow;
use crate::query::AsApiStr;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum DailyVar {
WeatherCode,
Temperature2mMax,
Temperature2mMin,
Temperature2mMean,
ApparentTemperatureMax,
ApparentTemperatureMean,
ApparentTemperatureMin,
Sunrise,
Sunset,
DaylightDuration,
SunshineDuration,
UvIndexMax,
UvIndexClearSkyMax,
PrecipitationSum,
RainSum,
ShowersSum,
SnowfallSum,
PrecipitationHours,
PrecipitationProbabilityMax,
PrecipitationProbabilityMean,
PrecipitationProbabilityMin,
WindSpeed10mMax,
WindSpeed10mMean,
WindSpeed10mMin,
WindGusts10mMax,
WindGusts10mMean,
WindGusts10mMin,
WindDirection10mDominant,
ShortwaveRadiationSum,
Et0FaoEvapotranspiration,
CapeMean,
CapeMax,
CapeMin,
CloudCoverMean,
CloudCoverMax,
CloudCoverMin,
DewPoint2mMean,
DewPoint2mMax,
DewPoint2mMin,
GrowingDegreeDaysBase0Limit50,
LeafWetnessProbabilityMean,
RelativeHumidity2mMean,
RelativeHumidity2mMax,
RelativeHumidity2mMin,
SnowfallWaterEquivalentSum,
PressureMslMean,
PressureMslMax,
PressureMslMin,
SurfacePressureMean,
SurfacePressureMax,
SurfacePressureMin,
UpdraftMax,
VisibilityMean,
VisibilityMin,
VisibilityMax,
WetBulbTemperature2mMean,
WetBulbTemperature2mMax,
WetBulbTemperature2mMin,
VapourPressureDeficitMax,
}
impl AsApiStr for DailyVar {
fn as_api_str(&self) -> Cow<'static, str> {
Cow::Borrowed(match self {
Self::WeatherCode => "weather_code",
Self::Temperature2mMax => "temperature_2m_max",
Self::Temperature2mMin => "temperature_2m_min",
Self::Temperature2mMean => "temperature_2m_mean",
Self::ApparentTemperatureMax => "apparent_temperature_max",
Self::ApparentTemperatureMean => "apparent_temperature_mean",
Self::ApparentTemperatureMin => "apparent_temperature_min",
Self::Sunrise => "sunrise",
Self::Sunset => "sunset",
Self::DaylightDuration => "daylight_duration",
Self::SunshineDuration => "sunshine_duration",
Self::UvIndexMax => "uv_index_max",
Self::UvIndexClearSkyMax => "uv_index_clear_sky_max",
Self::PrecipitationSum => "precipitation_sum",
Self::RainSum => "rain_sum",
Self::ShowersSum => "showers_sum",
Self::SnowfallSum => "snowfall_sum",
Self::PrecipitationHours => "precipitation_hours",
Self::PrecipitationProbabilityMax => "precipitation_probability_max",
Self::PrecipitationProbabilityMean => "precipitation_probability_mean",
Self::PrecipitationProbabilityMin => "precipitation_probability_min",
Self::WindSpeed10mMax => "wind_speed_10m_max",
Self::WindSpeed10mMean => "wind_speed_10m_mean",
Self::WindSpeed10mMin => "wind_speed_10m_min",
Self::WindGusts10mMax => "wind_gusts_10m_max",
Self::WindGusts10mMean => "wind_gusts_10m_mean",
Self::WindGusts10mMin => "wind_gusts_10m_min",
Self::WindDirection10mDominant => "wind_direction_10m_dominant",
Self::ShortwaveRadiationSum => "shortwave_radiation_sum",
Self::Et0FaoEvapotranspiration => "et0_fao_evapotranspiration",
Self::CapeMean => "cape_mean",
Self::CapeMax => "cape_max",
Self::CapeMin => "cape_min",
Self::CloudCoverMean => "cloud_cover_mean",
Self::CloudCoverMax => "cloud_cover_max",
Self::CloudCoverMin => "cloud_cover_min",
Self::DewPoint2mMean => "dew_point_2m_mean",
Self::DewPoint2mMax => "dew_point_2m_max",
Self::DewPoint2mMin => "dew_point_2m_min",
Self::GrowingDegreeDaysBase0Limit50 => "growing_degree_days_base_0_limit_50",
Self::LeafWetnessProbabilityMean => "leaf_wetness_probability_mean",
Self::RelativeHumidity2mMean => "relative_humidity_2m_mean",
Self::RelativeHumidity2mMax => "relative_humidity_2m_max",
Self::RelativeHumidity2mMin => "relative_humidity_2m_min",
Self::SnowfallWaterEquivalentSum => "snowfall_water_equivalent_sum",
Self::PressureMslMean => "pressure_msl_mean",
Self::PressureMslMax => "pressure_msl_max",
Self::PressureMslMin => "pressure_msl_min",
Self::SurfacePressureMean => "surface_pressure_mean",
Self::SurfacePressureMax => "surface_pressure_max",
Self::SurfacePressureMin => "surface_pressure_min",
Self::UpdraftMax => "updraft_max",
Self::VisibilityMean => "visibility_mean",
Self::VisibilityMin => "visibility_min",
Self::VisibilityMax => "visibility_max",
Self::WetBulbTemperature2mMean => "wet_bulb_temperature_2m_mean",
Self::WetBulbTemperature2mMax => "wet_bulb_temperature_2m_max",
Self::WetBulbTemperature2mMin => "wet_bulb_temperature_2m_min",
Self::VapourPressureDeficitMax => "vapour_pressure_deficit_max",
})
}
}