From 8e5b09b3795c9accf0e38906e5a0553197f8314a Mon Sep 17 00:00:00 2001 From: Harish Rajagopal Date: Mon, 19 Dec 2022 10:54:32 +0100 Subject: [PATCH] Bound type-param of RootSpanBuilder::on_request_end (#93) --- src/lib.rs | 12 ++++++++---- src/root_span_builder.rs | 5 +++-- src/root_span_macro.rs | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 0b98bf9e1..548358727 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -97,6 +97,7 @@ //! We could add a `client_id` property to the root span using a custom builder, `DomainRootSpanBuilder`: //! //! ```rust +//! use actix_web::body::MessageBody; //! use actix_web::dev::{ServiceResponse, ServiceRequest}; //! use actix_web::Error; //! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder}; @@ -110,7 +111,7 @@ //! tracing::info_span!("Request", client_id) //! } //! -//! fn on_request_end(_span: Span, _outcome: &Result, Error>) {} +//! fn on_request_end(_span: Span, _outcome: &Result, Error>) {} //! } //! //! let custom_middleware = TracingLogger::::new(); @@ -123,6 +124,7 @@ //! We can do better! //! //! ```rust +//! use actix_web::body::MessageBody; //! use actix_web::dev::{ServiceResponse, ServiceRequest}; //! use actix_web::Error; //! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder}; @@ -136,7 +138,7 @@ //! tracing_actix_web::root_span!(request, client_id) //! } //! -//! fn on_request_end(span: Span, outcome: &Result, Error>) { +//! fn on_request_end(span: Span, outcome: &Result, Error>) { //! DefaultRootSpanBuilder::on_request_end(span, outcome); //! } //! } @@ -155,6 +157,7 @@ //! the span level: //! //! ```rust +//! use actix_web::body::MessageBody; //! use actix_web::dev::{ServiceResponse, ServiceRequest}; //! use actix_web::Error; //! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, Level}; @@ -172,7 +175,7 @@ //! tracing_actix_web::root_span!(level = level, request) //! } //! -//! fn on_request_end(span: Span, outcome: &Result, Error>) { +//! fn on_request_end(span: Span, outcome: &Result, Error>) { //! DefaultRootSpanBuilder::on_request_end(span, outcome); //! } //! } @@ -187,6 +190,7 @@ //! to your root span as it becomes available: //! //! ```rust +//! use actix_web::body::MessageBody; //! use actix_web::dev::{ServiceResponse, ServiceRequest}; //! use actix_web::{Error, HttpResponse}; //! use tracing_actix_web::{RootSpan, DefaultRootSpanBuilder, RootSpanBuilder}; @@ -218,7 +222,7 @@ //! ) //! } //! -//! fn on_request_end(span: Span, response: &Result, Error>) { +//! fn on_request_end(span: Span, response: &Result, Error>) { //! DefaultRootSpanBuilder::on_request_end(span, response); //! } //! } diff --git a/src/root_span_builder.rs b/src/root_span_builder.rs index 978519f1a..96799b3c4 100644 --- a/src/root_span_builder.rs +++ b/src/root_span_builder.rs @@ -1,4 +1,5 @@ use crate::root_span; +use actix_web::body::MessageBody; use actix_web::dev::{ServiceRequest, ServiceResponse}; use actix_web::http::StatusCode; use actix_web::{Error, ResponseError}; @@ -10,7 +11,7 @@ use tracing::Span; /// [`TracingLogger`]: crate::TracingLogger pub trait RootSpanBuilder { fn on_request_start(request: &ServiceRequest) -> Span; - fn on_request_end(span: Span, outcome: &Result, Error>); + fn on_request_end(span: Span, outcome: &Result, Error>); } /// The default [`RootSpanBuilder`] for [`TracingLogger`]. @@ -40,7 +41,7 @@ impl RootSpanBuilder for DefaultRootSpanBuilder { root_span!(level = crate::Level::INFO, request) } - fn on_request_end(span: Span, outcome: &Result, Error>) { + fn on_request_end(span: Span, outcome: &Result, Error>) { match &outcome { Ok(response) => { if let Some(error) = response.response().error() { diff --git a/src/root_span_macro.rs b/src/root_span_macro.rs index d6ec7fd68..17735bf29 100644 --- a/src/root_span_macro.rs +++ b/src/root_span_macro.rs @@ -14,6 +14,7 @@ /// The first argument passed to `root_span!` must be a reference to an [`actix_web::dev::ServiceRequest`]. /// /// ```rust +/// use actix_web::body::MessageBody; /// use actix_web::dev::{ServiceResponse, ServiceRequest}; /// use actix_web::Error; /// use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, root_span}; @@ -26,7 +27,7 @@ /// root_span!(request) /// } /// -/// fn on_request_end(span: Span, outcome: &Result, Error>) { +/// fn on_request_end(span: Span, outcome: &Result, Error>) { /// DefaultRootSpanBuilder::on_request_end(span, outcome); /// } /// }