Подтвердить что ты не робот

Объявление срока закрытия в структуре

Из различных источников, которые я могу найти, давая жизнь ресурсу в struct, будет выполняться следующим образом:

pub struct Event<'self> {
    name: String,
    execute: &'self |data: &str|
}

Использование времени &'self теперь устарело. При объявлении свойства типа замыкания компилятор говорит мне, что ему нужен спецификатор lifetime, но я не могу найти пример где-нибудь, у которого есть замыкание как свойство структуры.

Это то, что я сейчас пытаюсь:

pub struct Event<'a> {
    name: String,
    execute: &'a |data: &str|
}

Но я получаю следующую ошибку: error: missing lifetime specifier [E0106]

Каков правильный синтаксис для объявления времени жизни closure в struct или любого типа, если это важно?

4b9b3361

Ответ 1

Обновлено до Rust 1.4.

Закрытия теперь основаны на одном из трех признаков: Fn, FnOnce и FnMut.

Тип замыкания нельзя точно определить, мы можем привязать общий тип к одному из признаков замыкания.

pub struct Event<F: Fn(&str) -> bool> {
    name: String,
    execute: F
}