diff --git a/foundations/src/telemetry/mod.rs b/foundations/src/telemetry/mod.rs index 6d3ed63..11b3828 100644 --- a/foundations/src/telemetry/mod.rs +++ b/foundations/src/telemetry/mod.rs @@ -132,9 +132,15 @@ pub use self::memory_profiler::MemoryProfiler; #[cfg(feature = "telemetry-server")] pub use self::server::{ - BoxError, TelemetryRouteHandler, TelemetryRouteHandlerFuture, TelemetryServerRoute, + TelemetryRouteBody, TelemetryRouteHandler, TelemetryRouteHandlerFuture, TelemetryServerRoute, }; +#[cfg(feature = "telemetry-server")] +/// Re-exported crates which are used in public `telemetry` APIs. +pub mod reexports { + pub use hyper; +} + pub use self::telemetry_context::{ TelemetryContext, WithTelemetryContext, WithTelemetryContextLocal, }; diff --git a/foundations/src/telemetry/server/mod.rs b/foundations/src/telemetry/server/mod.rs index 98e275a..843662d 100644 --- a/foundations/src/telemetry/server/mod.rs +++ b/foundations/src/telemetry/server/mod.rs @@ -131,7 +131,7 @@ impl TelemetryListener { } pub use router::{ - BoxError, TelemetryRouteHandler, TelemetryRouteHandlerFuture, TelemetryServerRoute, + TelemetryRouteBody, TelemetryRouteHandler, TelemetryRouteHandlerFuture, TelemetryServerRoute, }; pub(super) struct TelemetryServerFuture { diff --git a/foundations/src/telemetry/server/router.rs b/foundations/src/telemetry/server/router.rs index 591c84b..8fc74c4 100644 --- a/foundations/src/telemetry/server/router.rs +++ b/foundations/src/telemetry/server/router.rs @@ -16,12 +16,12 @@ use std::collections::HashMap; use std::convert::Infallible; use std::sync::Arc; +/// Body type used in [`TelemetryServerRoute`] responses. +pub type TelemetryRouteBody = BoxBody; + /// Future returned by [`TelemetryServerRoute::handler`]. pub type TelemetryRouteHandlerFuture = - BoxFuture<'static, std::result::Result>, Infallible>>; - -/// Error type returned by [`TelemetryRouteHandlerFuture`]. -pub type BoxError = Box; + BoxFuture<'static, Result, Infallible>>; /// Telemetry route handler. pub type TelemetryRouteHandler = Box< @@ -156,7 +156,7 @@ impl Router { } } - async fn handle_request(&self, req: Request) -> Response> { + async fn handle_request(&self, req: Request) -> Response { let res = Response::builder(); let Ok(path) = percent_decode_str(req.uri().path()).decode_utf8() else { @@ -188,7 +188,7 @@ impl Router { } impl Service> for Router { - type Response = Response>; + type Response = Response; type Error = Infallible; type Future = BoxFuture<'static, Result>; @@ -202,7 +202,7 @@ impl Service> for Router { fn into_response( content_type: &str, res: crate::Result>>, -) -> std::result::Result>, Infallible> { +) -> Result, Infallible> { Ok(match res { Ok(data) => Response::builder() .header(header::CONTENT_TYPE, content_type) diff --git a/foundations/tests/telemetry_server.rs b/foundations/tests/telemetry_server.rs index de8ac81..0983154 100644 --- a/foundations/tests/telemetry_server.rs +++ b/foundations/tests/telemetry_server.rs @@ -1,11 +1,12 @@ use foundations::telemetry::settings::{ LivenessTrackingSettings, TelemetryServerSettings, TelemetrySettings, TracingSettings, }; -use foundations::telemetry::{TelemetryConfig, TelemetryContext, TelemetryServerRoute}; +use foundations::telemetry::{ + reexports::hyper::{Method, Response}, + TelemetryConfig, TelemetryContext, TelemetryRouteBody, TelemetryServerRoute, +}; use futures_util::FutureExt; -use http_body_util::combinators::BoxBody; use http_body_util::{BodyExt, Full}; -use hyper::{Method, Response}; use std::future::IntoFuture; use std::net::{Ipv4Addr, SocketAddr}; @@ -56,7 +57,7 @@ async fn telemetry_server() { methods: vec![Method::GET], handler: Box::new(|_, _| { async { - Ok(Response::new(BoxBody::new( + Ok(Response::new(TelemetryRouteBody::new( Full::from("Hello").map_err(Into::into), ))) }