sword_layers/request_id/
layer.rs1use 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}