#[derive(Service)]Expand description
Derive macro for implementing the Service trait.
Generates a Service implementation that resolves all fields via
ServiceProvider::get_service().
§Example
ⓘ
#[derive(Service)]
pub struct MyHandler {
http: Arc<HttpClient>,
metadata: Arc<MetadataRepository>,
}Generates:
ⓘ
impl Service for MyHandler {
type Error = ServiceError;
async fn from_services(
services: &ServiceProvider,
) -> Result<Self, Report<Self::Error>> {
Ok(Self {
http: services.get_service().await?,
metadata: services.get_service().await?,
})
}
}