с большой иерархией типов,
в достаточно далеко вложенном типе есть переменная
требующая спецификатора времени жизни " 'a ",
при этом, чтобы всё рорректно работало необходимо
добавлять " 'a " ко всем типам, которые содержат этот тип.
Пример:
struct Root<'a> {
branches: Vec<Branch<'a>>
}
struct Branch<'a> {
value: f64,
leaf: Vec<Leaf<'a>>
}
struct Leaf<'a> {
ref_value: &'a String
}
Вопрос: есть ли способ избежать такого распространения lifetime?
Что-то на подобие такого:
struct Root {
branches: Vec<Branch>
}
struct Branch {
value: f64,
leaf: Vec<Leaf< /* ????? */>>,
}
struct Leaf<'a> {
ref_value: &'a String
}
Нельзя. Пиши лайфтайм или передавай поивладению.
Обсуждают сегодня