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