Что означает синтаксис "R + 'static" в "F: FnOnce (& mut Resource<S>) -> R +' static"?

Я пытаюсь понять следующий код в actix-web

pub fn resource<F, R>(self, path: &str, f: F) -> App<S>
where
    F: FnOnce(&mut Resource<S>) -> R + 'static,

Из моего понимания, resource это функция, которая принимает 2 параметра: фрагмент строки и функцию.

Функция может использоваться только один раз и принимает изменяемую ссылку Resource с S внутри и возвращается R для которого R а также S совершенно произвольно.

Что такое R + static?

1 ответ

Решение

R возвращаемое значение f,

Если вы посмотрите внутрь actix-web источник, вы можете видеть, что это значение отбрасывается / не используется. Я думаю, что это в основном удобство; вместо указания () возвращаемое значение, actix облегчает задачу, не заботясь о том, что вы возвращаете из f,

Я верю 'static время жизни следует читать как применение к F а не R, Это f (обычно замыкание) должно иметь статическое время жизни.

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