mirror of
https://github.com/tokio-rs/axum.git
synced 2024-11-26 17:17:22 +01:00
f6b47478da
* add axum-debug to workspace * update readme * add changes to changelog * little docs update * fix the gap a tab has leaked into workspace Cargo.toml, it must be fixed * address clippy warnings |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE | ||
README.md |
axum-debug
This is a debugging crate that provides better error messages for axum
framework.
axum
is a great framework for developing web applications. But when you
make a mistake, error messages can be really complex and long. It can take a
long time for you to figure out what is wrong in your code. This crate provides
utilities to generate better error messages in case you make a mistake.
Usage Example
Will fail with a better error message:
use axum::{routing::get, Router};
use axum_debug::debug_handler;
#[tokio::main]
async fn main() {
let app = Router::new().route("/", get(handler));
axum::Server::bind(&"0.0.0.0:3000".parse().unwrap())
.serve(app.into_make_service())
.await
.unwrap();
}
#[debug_handler]
async fn handler() -> bool {
false
}
Error message:
error[E0277]: the trait bound `bool: IntoResponse` is not satisfied
--> main.rs:xx:23
|
xx | async fn handler() -> bool {
| ^^^^
| |
| the trait `IntoResponse` is not implemented for `bool`
Safety
This crate uses #![forbid(unsafe_code)]
to ensure everything is implemented in 100% safe Rust.
Performance
Macros in this crate have no effect when using release profile. (eg. cargo build --release
)
License
This project is licensed under the MIT license.