在函数签名中生锈私有泛型

rust private generics in function signature

我尝试创建 actix 网络应用程序,我想在单独的函数中注册路由

use actix_web::{web, App, HttpResponse, HttpServer, Responder};

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        let app = App::new();
        register_routes(&app)
    })
        .bind(("127.0.0.1", 8080))?
        .run()
        .await
}

fn register_routes(app: App<AppEntry>) -> App<AppEntry> {
    App::new()
        .route("/hey", web::get().to(hello))
}

async fn hello() -> impl Responder {
    HttpResponse::Ok().body("Hey there!")
}

App::new() 函数 returns App<AppEntry> 但是 AppEntry 是私有的

register_routes 函数应该如何?

您可以为此使用 App::configure,避免直接传递 App<AppEntry> 的需要,就像它们在 this example.

中显示的那样

顺便说一下,在您的 register_routes 函数中,您只是创建了另一个新的 App,您实际上并没有使用传入的函数。