1#![cfg_attr(docsrs, feature(doc_cfg))]
39#![forbid(unsafe_code)]
40#![warn(missing_docs)]
41
42#[cfg(all(feature = "rustls-tls", feature = "native-tls"))]
43compile_error!("features `rustls-tls` and `native-tls` are mutually exclusive");
44
45#[cfg(not(feature = "time"))]
46compile_error!("feature `time` must be enabled");
47
48mod client;
49mod error;
50mod json_sanitize;
51mod query;
52
53mod endpoints;
54pub mod response;
55pub mod units;
56pub mod variables;
57pub mod weather_code;
58
59pub use client::{Client, ClientBuilder};
60pub use endpoints::air_quality::AirQualityBuilder;
61pub use endpoints::archive::ArchiveBuilder;
62pub use endpoints::climate::ClimateBuilder;
63pub use endpoints::ensemble::EnsembleBuilder;
64pub use endpoints::flood::FloodBuilder;
65pub use endpoints::forecast::{ForecastBatchBuilder, ForecastBuilder};
66pub use endpoints::geocoding::{GeocodedLocation, GeocodingBuilder};
67pub use endpoints::historical_forecast::HistoricalForecastBuilder;
68pub use endpoints::marine::MarineBuilder;
69pub use endpoints::previous_runs::PreviousRunsBuilder;
70pub use endpoints::satellite_radiation::SatelliteRadiationBuilder;
71pub use endpoints::seasonal::SeasonalBuilder;
72pub use error::{Error, HttpError, Result};
73pub use response::{
74 CurrentData, DailyData, ForecastResponse, HourlyData, Minutely15Data, MonthlyData,
75 SeriesValues, Variable, VariableDescriptor, VariableSeries,
76};
77pub use units::{
78 CellSelection, LengthUnit, PrecipitationUnit, TemperatureUnit, TimeFormat, Timezone,
79 WindSpeedUnit,
80};
81pub use variables::{
82 Aggregation, AirQualityCurrentVar, AirQualityDomain, AirQualityHourlyVar, ArchiveModel,
83 ClimateDailyVar, ClimateModel, CurrentVar, DailyVar, EnsembleModel, FloodDailyVar, FloodModel,
84 HourlyVar, MarineCurrentVar, MarineDailyVar, MarineHourlyVar, MarineMinutely15Var, MarineModel,
85 Minutely15Var, PressureLevel, SatelliteRadiationHourlyVar, SatelliteRadiationModel,
86 SatelliteRadiationTemporalResolution, SeasonalModel, SeasonalMonthlyVar, SoilMoistureDepth,
87 SoilTemperatureDepth, TowerLevel, WeatherModel,
88};
89pub use weather_code::{Severity, WmoCode};
90
91pub type ArchiveResponse = ForecastResponse;
93
94pub type HistoricalForecastResponse = ForecastResponse;
96
97pub type PreviousRunsResponse = ForecastResponse;
99
100pub type EnsembleResponse = ForecastResponse;
102
103pub type SeasonalResponse = ForecastResponse;
105
106pub type ClimateResponse = ForecastResponse;
108
109pub type SatelliteRadiationResponse = ForecastResponse;
111
112pub type FloodResponse = ForecastResponse;
114
115pub type MarineResponse = ForecastResponse;
117
118pub type AirQualityResponse = ForecastResponse;