Закрытие и объявление функции в структуре

У меня возникли проблемы (как новичка) при получении моего приложения для компиляции. Это, вероятно, самая очевидная деталь, но я пытаюсь понять, что происходит.

Я пишу структуру оболочки для библиотеки веб-сервера 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 параметры или б) я могу объявить функцию в структуре и вернуть ее как фабрику / генератор, который возвращает приложение?

0 ответов

Другие вопросы по тегам