根据错误提示,在Scope类型上实现Clone trait即可。可以通过derive方法来自动实现。示例代码如下:
use actix_web::{web, App, HttpResponse, HttpServer};
#[derive(Clone)]
struct State {
// ...
}
fn index(state: web::Data) -> HttpResponse {
// ...
}
fn main() -> std::io::Result<()> {
let state = State { /* ... */ };
HttpServer::new(move || {
App::new()
.data(state.clone()) // 这里使用clone方法
.route("/", web::get().to(index))
})
.bind("127.0.0.1:8080")?
.run()
}