Закрытие и объявление функции в структуре
У меня возникли проблемы (как новичка) при получении моего приложения для компиляции. Это, вероятно, самая очевидная деталь, но я пытаюсь понять, что происходит.
Я пишу структуру оболочки для библиотеки веб-сервера Actix. Моя структура определяется так:
struct CustomServer {
connections: IncomingRequets,
server: HttpServer<App, fn() -> App>,
address: String,
port: i32,
}
Я пытаюсь создать структуру и вернуть ее через функцию:
let address: Handle<JsString> = cx.argument::<JsString>(0)?;
let port: Handle<JsNumber> = cx.argument::<JsNumber>(1)?;
let server = server::new(|| {
App::new()
.middleware(middleware::Logger::default())
.default_resource(|r| r.f(index))
});
// Export the server struct
CustomServer {
address: address.value(),
port: port.value() as i32,
server: server,
connections: IncomingRequets {
requests: HashMap::new(),
},
}
expected fn pointer, found closure
, Я понимаю, что это, вероятно, связано с отсутствием в моем понимании того, как объявляются конкретные структуры и типы. Я также понимаю, что я передаю замыкание, а не функцию.
Итак, мой мыслительный процесс таков: а) как я могу объявить закрытие как часть HttpServer
параметры или б) я могу объявить функцию в структуре и вернуть ее как фабрику / генератор, который возвращает приложение?