#web #框架 #http

已删除 axum-eyre

为axum提供灵活的Error和Result类型

0.5.1 2022年4月6日
0.5.0 2022年4月6日

#1580 in #http

MIT 许可证

4KB

axum-eyre

cargo add axum-eyre

一个提供可以以类似于 eyre 方式使用的 ErrorResult 类型的Crate。

use axum::{response::Html, routing::get, Router};
use std::{fs::read_to_string, net::SocketAddr};
use axum_eyre::Result;

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(index));
    axum::Server::bind(&SocketAddr::from(([127, 0, 0, 1], 3000)))
        .serve(app.into_make_service())
        .await
        .unwrap();
}

async fn index() -> Result<Html<String>> {
    let template = read_to_string("index.html")?;
    Ok(Html(template))
}

lib.rs:

一个提供可以以类似于 eyre 方式使用的 ErrorResult 类型的Crate。

use axum::{response::Html, routing::get, Router};
use std::{fs::read_to_string, net::SocketAddr};
use axum_eyre::Result;

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(index));
    axum::Server::bind(&SocketAddr::from(([127, 0, 0, 1], 3000)))
        .serve(app.into_make_service())
        .await
        .unwrap();
}

async fn index() -> Result<Html<String>> {
    let template = read_to_string("index.html")?;
    Ok(Html(template))
}

依赖项

~7–16MB
~200K SLoC