1 #![cfg_attr(nightly_error_messages, feature(rustc_attrs))]
2 //! Core types and traits for [`axum`].
3 //!
4 //! Libraries authors that want to provide [`FromRequest`] or [`IntoResponse`] implementations
5 //! should depend on the [`axum-core`] crate, instead of `axum` if possible.
6 //!
7 //! [`FromRequest`]: crate::extract::FromRequest
8 //! [`IntoResponse`]: crate::response::IntoResponse
9 //! [`axum`]: https://crates.io/crates/axum
10 //! [`axum-core`]: http://crates.io/crates/axum-core
11 
12 #![warn(
13     clippy::all,
14     clippy::dbg_macro,
15     clippy::todo,
16     clippy::empty_enum,
17     clippy::enum_glob_use,
18     clippy::mem_forget,
19     clippy::unused_self,
20     clippy::filter_map_next,
21     clippy::needless_continue,
22     clippy::needless_borrow,
23     clippy::match_wildcard_for_single_variants,
24     clippy::if_let_mutex,
25     clippy::mismatched_target_os,
26     clippy::await_holding_lock,
27     clippy::match_on_vec_items,
28     clippy::imprecise_flops,
29     clippy::suboptimal_flops,
30     clippy::lossy_float_literal,
31     clippy::rest_pat_in_fully_bound_structs,
32     clippy::fn_params_excessive_bools,
33     clippy::exit,
34     clippy::inefficient_to_string,
35     clippy::linkedlist,
36     clippy::macro_use_imports,
37     clippy::option_option,
38     clippy::verbose_file_reads,
39     clippy::unnested_or_patterns,
40     clippy::str_to_string,
41     rust_2018_idioms,
42     future_incompatible,
43     nonstandard_style,
44     missing_debug_implementations,
45     missing_docs
46 )]
47 #![deny(unreachable_pub, private_in_public)]
48 #![allow(elided_lifetimes_in_paths, clippy::type_complexity)]
49 #![forbid(unsafe_code)]
50 #![cfg_attr(test, allow(clippy::float_cmp))]
51 
52 #[macro_use]
53 pub(crate) mod macros;
54 
55 mod error;
56 mod ext_traits;
57 pub use self::error::Error;
58 
59 pub mod body;
60 pub mod extract;
61 pub mod response;
62 
63 /// Alias for a type-erased error type.
64 pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
65 
66 pub use self::ext_traits::{request::RequestExt, request_parts::RequestPartsExt};
67