#[async_trait::async_trait]
pub trait Weather: std::fmt::Debug + Send + Sync {
async fn lookup_current_conditions(
&self,
req: crate::model::LookupCurrentConditionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupCurrentConditionsResponse>>;
async fn lookup_forecast_hours(
&self,
req: crate::model::LookupForecastHoursRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupForecastHoursResponse>>;
async fn lookup_forecast_days(
&self,
req: crate::model::LookupForecastDaysRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupForecastDaysResponse>>;
async fn lookup_history_hours(
&self,
req: crate::model::LookupHistoryHoursRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupHistoryHoursResponse>>;
async fn lookup_public_alerts(
&self,
req: crate::model::LookupPublicAlertsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupPublicAlertsResponse>>;
async fn lookup_forecast_minutes(
&self,
req: crate::model::LookupForecastMinutesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupForecastMinutesResponse>>;
}
#[async_trait::async_trait]
impl<T: super::Weather> Weather for T {
async fn lookup_current_conditions(
&self,
req: crate::model::LookupCurrentConditionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupCurrentConditionsResponse>> {
T::lookup_current_conditions(self, req, options).await
}
async fn lookup_forecast_hours(
&self,
req: crate::model::LookupForecastHoursRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupForecastHoursResponse>> {
T::lookup_forecast_hours(self, req, options).await
}
async fn lookup_forecast_days(
&self,
req: crate::model::LookupForecastDaysRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupForecastDaysResponse>> {
T::lookup_forecast_days(self, req, options).await
}
async fn lookup_history_hours(
&self,
req: crate::model::LookupHistoryHoursRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupHistoryHoursResponse>> {
T::lookup_history_hours(self, req, options).await
}
async fn lookup_public_alerts(
&self,
req: crate::model::LookupPublicAlertsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupPublicAlertsResponse>> {
T::lookup_public_alerts(self, req, options).await
}
async fn lookup_forecast_minutes(
&self,
req: crate::model::LookupForecastMinutesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LookupForecastMinutesResponse>> {
T::lookup_forecast_minutes(self, req, options).await
}
}