diff --git a/tonic/Cargo.toml b/tonic/Cargo.toml index 12699547c..652f10a33 100644 --- a/tonic/Cargo.toml +++ b/tonic/Cargo.toml @@ -78,7 +78,7 @@ tokio = {version = "1.0.1", features = ["net"], optional = true} tokio-stream = "0.1" tower = {version = "0.4.7", features = ["balance", "buffer", "discover", "limit", "load", "make", "timeout", "util"], optional = true} tracing-futures = {version = "0.2", optional = true} -axum = {version = "0.4", default_features = false, optional = true} +axum = {version = "0.5", default_features = false, optional = true} # rustls rustls-pemfile = { version = "0.3", optional = true } diff --git a/tonic/src/transport/service/router.rs b/tonic/src/transport/service/router.rs index 5051369ae..5f5e10d18 100644 --- a/tonic/src/transport/service/router.rs +++ b/tonic/src/transport/service/router.rs @@ -8,6 +8,7 @@ use hyper::Body; use pin_project::pin_project; use std::{ convert::Infallible, + fmt, future::Future, pin::Pin, task::{Context, Poll}, @@ -54,8 +55,7 @@ impl Routes { async fn unimplemented() -> impl axum::response::IntoResponse { let status = http::StatusCode::OK; - let headers = - axum::response::Headers([("grpc-status", "12"), ("content-type", "application/grpc")]); + let headers = [("grpc-status", "12"), ("content-type", "application/grpc")]; (status, headers) } @@ -75,8 +75,13 @@ impl Service> for Routes { } #[pin_project] -#[derive(Debug)] -pub struct RoutesFuture(#[pin] axum::routing::future::RouterFuture); +pub struct RoutesFuture(#[pin] axum::routing::future::RouteFuture); + +impl fmt::Debug for RoutesFuture { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("RoutesFuture").finish() + } +} impl Future for RoutesFuture { type Output = Result, crate::Error>;