1#![cfg_attr(docsrs, feature(doc_cfg))]
24
25mod body_async_write;
26mod body_channel;
27mod body_limit;
28mod bytes;
29mod cache_control;
30mod catch_panic;
31#[cfg(feature = "cbor")]
32mod cbor;
33mod clear_site_data;
34mod condition_option;
35mod content_length;
36mod csv;
37mod display_stream;
38mod err_handler;
39mod forwarded;
40mod host;
41mod infallible_body_stream;
42mod json;
43mod lazy_data;
44mod lazy_data_shared;
45mod load_shed;
46mod local_data;
47mod middleware_map_response;
48mod middleware_map_response_body;
49#[cfg(feature = "msgpack")]
50mod msgpack;
51mod ndjson;
52mod normalize_path;
53mod panic_reporter;
54mod path;
55mod query;
56mod redirect_host;
57mod redirect_to_https;
58mod redirect_to_non_www;
59mod redirect_to_www;
60mod request_signature;
61#[cfg(feature = "spa")]
62mod spa;
63mod strict_transport_security;
64mod swap_data;
65#[cfg(test)]
66mod test_header_macros;
67mod test_request_macros;
68mod test_response_macros;
69mod test_services;
70mod url_encoded_form;
71mod x_forwarded_prefix;
72
73pub mod body;
75pub mod extract;
76pub mod guard;
77pub mod header;
78pub mod middleware;
79pub mod respond;
80pub mod sse;
81pub mod test;
82pub mod util;
83pub mod web;
84
85#[cfg(feature = "derive")]
86pub use actix_web_lab_derive::FromRequest;
87
88#[doc(hidden)]
90pub mod __reexports {
91 pub use ::actix_web;
92 pub use ::futures_util;
93 pub use ::serde_json;
94 pub use ::tokio;
95 pub use ::tracing;
96}
97
98pub(crate) type BoxError = Box<dyn std::error::Error>;