Skip to content

Commit 469bdac

Browse files
TofuWafflesjplatte
authored andcommitted
Add and implement HttpMakeClassifier and GrpcMakeClassifier type aliases
Fixes: #233
1 parent f47f2f6 commit 469bdac

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

tower-http/src/builder.rs

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
use tower::ServiceBuilder;
22

3-
#[cfg(feature = "trace")]
4-
use crate::classify::{GrpcErrorsAsFailures, ServerErrorsAsFailures, SharedClassifier};
5-
63
#[allow(unused_imports)]
74
use http::header::HeaderName;
85
#[allow(unused_imports)]
@@ -126,7 +123,7 @@ pub trait ServiceBuilderExt<L>: crate::sealed::Sealed<L> + Sized {
126123
#[cfg(feature = "trace")]
127124
fn trace_for_http(
128125
self,
129-
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<SharedClassifier<ServerErrorsAsFailures>>, L>>;
126+
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<crate::trace::HttpMakeClassifier>, L>>;
130127

131128
/// High level tracing that classifies responses using gRPC headers.
132129
///
@@ -140,7 +137,7 @@ pub trait ServiceBuilderExt<L>: crate::sealed::Sealed<L> + Sized {
140137
#[cfg(feature = "trace")]
141138
fn trace_for_grpc(
142139
self,
143-
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<SharedClassifier<GrpcErrorsAsFailures>>, L>>;
140+
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<crate::trace::GrpcMakeClassifier>, L>>;
144141

145142
/// Follow redirect resposes using the [`Standard`] policy.
146143
///
@@ -427,16 +424,14 @@ impl<L> ServiceBuilderExt<L> for ServiceBuilder<L> {
427424
#[cfg(feature = "trace")]
428425
fn trace_for_http(
429426
self,
430-
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<SharedClassifier<ServerErrorsAsFailures>>, L>>
431-
{
427+
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<crate::trace::HttpMakeClassifier>, L>> {
432428
self.layer(crate::trace::TraceLayer::new_for_http())
433429
}
434430

435431
#[cfg(feature = "trace")]
436432
fn trace_for_grpc(
437433
self,
438-
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<SharedClassifier<GrpcErrorsAsFailures>>, L>>
439-
{
434+
) -> ServiceBuilder<Stack<crate::trace::TraceLayer<crate::trace::GrpcMakeClassifier>, L>> {
440435
self.layer(crate::trace::TraceLayer::new_for_grpc())
441436
}
442437

tower-http/src/trace/layer.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::{
22
DefaultMakeSpan, DefaultOnBodyChunk, DefaultOnEos, DefaultOnFailure, DefaultOnRequest,
3-
DefaultOnResponse, Trace,
3+
DefaultOnResponse, GrpcMakeClassifier, HttpMakeClassifier, Trace,
44
};
55
use crate::classify::{
66
GrpcErrorsAsFailures, MakeClassifier, ServerErrorsAsFailures, SharedClassifier,
@@ -176,7 +176,7 @@ impl<M, MakeSpan, OnRequest, OnResponse, OnBodyChunk, OnEos, OnFailure>
176176
}
177177
}
178178

179-
impl TraceLayer<SharedClassifier<ServerErrorsAsFailures>> {
179+
impl TraceLayer<HttpMakeClassifier> {
180180
/// Create a new [`TraceLayer`] using [`ServerErrorsAsFailures`] which supports classifying
181181
/// regular HTTP responses based on the status code.
182182
pub fn new_for_http() -> Self {
@@ -192,7 +192,7 @@ impl TraceLayer<SharedClassifier<ServerErrorsAsFailures>> {
192192
}
193193
}
194194

195-
impl TraceLayer<SharedClassifier<GrpcErrorsAsFailures>> {
195+
impl TraceLayer<GrpcMakeClassifier> {
196196
/// Create a new [`TraceLayer`] using [`GrpcErrorsAsFailures`] which supports classifying
197197
/// gRPC responses and streams based on the `grpc-status` header.
198198
pub fn new_for_grpc() -> Self {

tower-http/src/trace/mod.rs

+10-1
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,16 @@ pub use self::{
400400
on_response::{DefaultOnResponse, OnResponse},
401401
service::Trace,
402402
};
403-
use crate::LatencyUnit;
403+
use crate::{
404+
classify::{GrpcErrorsAsFailures, ServerErrorsAsFailures, SharedClassifier},
405+
LatencyUnit,
406+
};
407+
408+
/// MakeClassifier for HTTP requests.
409+
pub type HttpMakeClassifier = SharedClassifier<ServerErrorsAsFailures>;
410+
411+
/// MakeClassifier for gRPC requests.
412+
pub type GrpcMakeClassifier = SharedClassifier<GrpcErrorsAsFailures>;
404413

405414
macro_rules! event_dynamic_lvl {
406415
( $(target: $target:expr,)? $(parent: $parent:expr,)? $lvl:expr, $($tt:tt)* ) => {

tower-http/src/trace/service.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::{
22
DefaultMakeSpan, DefaultOnBodyChunk, DefaultOnEos, DefaultOnFailure, DefaultOnRequest,
3-
DefaultOnResponse, MakeSpan, OnBodyChunk, OnEos, OnFailure, OnRequest, OnResponse,
4-
ResponseBody, ResponseFuture, TraceLayer,
3+
DefaultOnResponse, GrpcMakeClassifier, HttpMakeClassifier, MakeSpan, OnBodyChunk, OnEos,
4+
OnFailure, OnRequest, OnResponse, ResponseBody, ResponseFuture, TraceLayer,
55
};
66
use crate::classify::{
77
GrpcErrorsAsFailures, MakeClassifier, ServerErrorsAsFailures, SharedClassifier,
@@ -207,7 +207,7 @@ impl<S, M, MakeSpan, OnRequest, OnResponse, OnBodyChunk, OnEos, OnFailure>
207207
impl<S>
208208
Trace<
209209
S,
210-
SharedClassifier<ServerErrorsAsFailures>,
210+
HttpMakeClassifier,
211211
DefaultMakeSpan,
212212
DefaultOnRequest,
213213
DefaultOnResponse,
@@ -235,7 +235,7 @@ impl<S>
235235
impl<S>
236236
Trace<
237237
S,
238-
SharedClassifier<GrpcErrorsAsFailures>,
238+
GrpcMakeClassifier,
239239
DefaultMakeSpan,
240240
DefaultOnRequest,
241241
DefaultOnResponse,

0 commit comments

Comments
 (0)