Skip to main content

sword_layers/request_id/
layer.rs

1use tower::ServiceBuilder;
2use tower_http::request_id::{MakeRequestUuid, PropagateRequestIdLayer, SetRequestIdLayer};
3use tower_layer::{Identity, Stack};
4
5type RequestIdServiceType = ServiceBuilder<
6    Stack<PropagateRequestIdLayer, Stack<SetRequestIdLayer<MakeRequestUuid>, Identity>>,
7>;
8
9pub use tower_http::request_id::RequestId;
10
11pub struct RequestIdLayer;
12
13impl RequestIdLayer {
14    pub fn new() -> RequestIdServiceType {
15        ServiceBuilder::new()
16            .layer(SetRequestIdLayer::x_request_id(MakeRequestUuid::default()))
17            .layer(PropagateRequestIdLayer::x_request_id())
18    }
19}