Skip to main content

sword_layers/
lib.rs

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}