gpt4 book ai didi

rust - 如何有条件地将路由添加到 Axum Router?

转载 作者:行者123 更新时间:2023-12-03 08:06:38 24 4
gpt4 key购买 nike

我正在使用 axum 和此代码来创建服务器,但出现错误:

use axum::{response::Html, routing::get, Router};

async fn handler() -> Html<&'static str> {
Html("<h1>Hello, World!</h1>")
}

#[tokio::main]
async fn main() {
let router = Router::new();

router.route("/", get(handler));

if true { // I need to check something here
router.route("/other", get(handler));
}

axum::Server::bind(&([127, 0, 0, 1], 3000).into())
.serve(router.into_make_service())
.await
.unwrap();
}
error[E0382]: use of moved value: `router`
--> src\main.rs:18:16
|
9 | let router = Router::new();
| ------ move occurs because `router` has type `Router`, which does not implement the `Copy` trait
10 |
11 | router.route("/", get(handler));
| ------ value moved here
...
14 | router.route("/other", get(handler));
| ------ value moved here
...
18 | .serve(router.into_make_service())
| ^^^^^^ value used here after move

我尝试使用 &router 但仍然收到错误。我怎样才能解决这个问题?我应该使用.clone()吗?

最佳答案

使用此代码可以正常工作:

let mut router = Router::new();
router = router.route("/", get(handler));

if true {
router = router.route(...);
}

关于rust - 如何有条件地将路由添加到 Axum Router?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72156620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com