use async_trait::async_trait;
use crate::model::{AreaBriefingRequest, Briefing};
use crate::provider::{ContextProvider, ProviderError};
use crate::route_request::RouteBriefingRequest;
#[async_trait(?Send)]
pub trait WeatherBriefingProvider: ContextProvider {
async fn area_briefing(&self, request: &AreaBriefingRequest)
-> Result<Briefing, ProviderError>;
async fn route_briefing(
&self,
_request: &RouteBriefingRequest,
) -> Result<Briefing, ProviderError> {
Err(ProviderError::Unsupported {
reason: format!("{} has no route-briefing capability", self.name()),
})
}
}