Я использую actix-web для создания http-сервера со встроенными в него состоянием / данными. Но vscode показывает мне, что функция create_app имеет неверные аргументы в определении типа возвращаемого значения «App‹ AppState> »:
pub struct приложение
неправильное количество аргументов типа: ожидается 2, найдено 1
ожидаемые 2 аргумента типа rustc (E0107)
app.rs:
use crate::api;
use crate::model::DbExecutor;
use actix::prelude::Addr;
use actix_web::{error, http::Method, middleware::Logger, web, App, HttpResponse};
pub struct AppState {
pub db: Addr<DbExecutor>,
}
pub fn create_app(db: Addr<DbExecutor>) -> App<AppState> {
App::new().data(AppState { db }).service(
web::resource("/notes/").route(web::get().to(api::notes))
);
}
main.rs:
fn main(){
HttpServer::new(move || app::create_app(addr.clone()))
.bind("127.0.0.1:3000").expect("Can not bind to '127.0.0.1:3000'").start();
}
Поскольку возвращаемый тип метода «service» - «Self», который является типом actix_web :: App, я попытался изменить тип возвращаемого значения на App (без универсального параметра), но все равно получил ошибку, что мне делать?