use std::fmt; use std::task::{Context, Poll}; use tower::Service; pub struct LogService { pub service: S, } impl Service for LogService where S: Service, Request: fmt::Debug, { type Response = S::Response; type Error = S::Error; type Future = S::Future; fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { self.service.poll_ready(cx) } fn call(&mut self, request: Request) -> Self::Future { log::debug!("request = {:?}", request); self.service.call(request) } }