#actix-web #routes #const #macro #run-time #routing #path

actix-web-codegen-const-routes

支持const路由的Actix Web路由和运行时宏

1个不稳定版本

0.2.0 2023年10月14日

#1274 in 进程宏

Download history 11/week @ 2024-03-13 4/week @ 2024-03-20 12/week @ 2024-03-27 16/week @ 2024-04-03 26/week @ 2024-04-10 4/week @ 2024-04-17 16/week @ 2024-04-24 1/week @ 2024-05-08 4/week @ 2024-05-15 6/week @ 2024-05-22 194/week @ 2024-05-29 639/week @ 2024-06-05 54/week @ 2024-06-12 91/week @ 2024-06-19 56/week @ 2024-06-26

1,020次每月下载

MIT/Apache

31KB
547 代码行

actix-web-codegen-const-routes

支持const路由的Actix Web路由和运行时宏。是actix-web-codegen的分支

status-badge

文档和资源

  • API文档 TODO: 用分支的文档链接替换
  • 最低支持Rust版本(MSRV):1.54

编译测试

使用trybuild库。所有编译失败的测试都应该包含由trybuild生成的stderr文件。有关如何执行此操作的详细信息,请参阅trybuild文档中的工作流程部分


lib.rs:

Actix Web路由和运行时宏。

Actix Web重导出

Actix Web完全导出此crate的版本,因此您通常无需明确指定对此crate的依赖。但是,有时在此crate更新之前会对此crate进行更新。因此,这里的代码示例将显示明确的导入。请查看最新的actix-web属性文档,以查看哪些宏被重导出。

运行时设置

用于设置Actix异步运行时。请参阅[宏@main]宏文档。

#[actix_web_codegen_const_routes::main] // or `#[actix_web::main]` in Actix Web apps
async fn main() {
    async { println!("Hello world"); }.await
}

单方法处理器

有一个宏可以设置对最常见的HTTP方法的处理器,同时也定义了额外的守卫和特定路由的中间件。

请参阅以下文档: GETPOSTPATCHPUTDELETEHEADCONNECTOPTIONSTRACE

#[get("/test")]
async fn get_handler() -> HttpResponse {
    HttpResponse::Ok().finish()
}

多种方法处理器

类似于单方法处理器宏,但它接受一个或多个参数,用于指定应响应的HTTP方法。请参阅[macro@route]宏文档。

#[route("/test", method = "GET", method = "HEAD")]
async fn get_and_head_handler() -> HttpResponse {
    HttpResponse::Ok().finish()
}

多种路径处理器

作为多个单方法处理器宏的包装器。它不接受任何参数,并将这些参数委托给单个方法宏。请参阅[macro@routes]宏文档。

#[routes]
#[get("/test")]
#[get("/test2")]
#[delete("/test")]
async fn example() -> HttpResponse {
    HttpResponse::Ok().finish()
}

依赖项

~1.7–2.5MB
~46K SLoC