axum_core/
lib.rs

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