pub struct RequestIdLayer { /* private fields */ }Expand description
Tower Layer that ensures every request carries an X-Request-Id header.
- If the incoming request already has an
X-Request-Id, it is forwarded unchanged. - Otherwise a monotonically-increasing numeric ID is generated and injected
(format:
req-<n>).
The same header value is echoed back in the response.
§Example
use api_bones_tower::RequestIdLayer;
use tower::ServiceBuilder;
let _svc = ServiceBuilder::new()
.layer(RequestIdLayer::new())
.service(tower::service_fn(|_req: http::Request<()>| async {
Ok::<_, std::convert::Infallible>(http::Response::new(()))
}));Implementations§
Trait Implementations§
Source§impl Clone for RequestIdLayer
impl Clone for RequestIdLayer
Source§fn clone(&self) -> RequestIdLayer
fn clone(&self) -> RequestIdLayer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RequestIdLayer
impl Debug for RequestIdLayer
Source§impl Default for RequestIdLayer
impl Default for RequestIdLayer
Auto Trait Implementations§
impl Freeze for RequestIdLayer
impl RefUnwindSafe for RequestIdLayer
impl Send for RequestIdLayer
impl Sync for RequestIdLayer
impl Unpin for RequestIdLayer
impl UnsafeUnpin for RequestIdLayer
impl UnwindSafe for RequestIdLayer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more