use http_extensions::{HttpRequest, HttpResponse, RequestHandler, Result};
use layered::{DynamicService, DynamicServiceExt, Service};
#[derive(Debug)]
pub(crate) struct TransportHandler(pub DynamicService<HttpRequest, Result<HttpResponse>>);
impl TransportHandler {
pub(crate) fn new<H: RequestHandler + 'static>(handler: H) -> Self {
Self(handler.into_dynamic())
}
}
impl Service<HttpRequest> for TransportHandler {
type Out = Result<HttpResponse>;
fn execute(&self, input: HttpRequest) -> impl Future<Output = Self::Out> + Send {
self.0.execute(input)
}
}