1#[cfg(feature = "helmet")]
2pub mod helmet;
3pub mod not_found;
4pub mod prelude;
5pub mod utils;
6
7use axum::{body::Body, response::Response};
8use tower::ServiceBuilder;
9use tower::util::MapResponseLayer;
10use tower_layer::{Identity, Stack};
11
12pub type ResponseFnMapperServiceLayer =
13 ServiceBuilder<Stack<MapResponseLayer<ResponseFnMapper>, Identity>>;
14
15pub(crate) type ResponseFnMapper = fn(Response<Body>) -> Response<Body>;
16
17pub mod cookies {
18 pub use tower_cookies::*;
19}
20
21pub mod request_id {
22 mod layer;
23
24 pub use layer::{RequestId, RequestIdLayer};
25 pub use uuid::Uuid;
26}
27
28pub mod compression {
29 mod config;
30 mod layer;
31
32 pub use config::CompressionConfig;
33 pub use layer::CompressionLayer;
34}
35
36pub mod cors {
37 mod config;
38 mod layer;
39
40 pub use config::CorsConfig;
41 pub use layer::CorsLayer;
42}
43
44pub mod servedir {
45 mod config;
46 mod layer;
47
48 pub use config::ServeDirConfig;
49 pub use layer::ServeDirLayer;
50}
51
52pub mod body_limit {
53 mod config;
54 mod layer;
55
56 pub use config::BodyLimitConfig;
57 pub use layer::BodyLimitLayer;
58}
59
60pub mod req_timeout {
61 mod config;
62 mod layer;
63
64 pub use config::RequestTimeoutConfig;
65 pub use layer::RequestTimeoutLayer;
66}
67
68pub trait DisplayConfig {
69 fn display(&self);
70}