Quando é útil definir várias vidas em uma estrutura?
No Rust, quando queremos que uma estrutura contenha referências, normalmente definimos sua vida útil como tal:
struct Foo<'a> {
x: &'a i32,
y: &'a i32,
}
Mas também é possível definir várias vidas úteis para diferentes referências na mesma estrutura:
struct Foo<'a, 'b> {
x: &'a i32,
y: &'b i32,
}
Quando é que é útil fazer isso? Alguém pode fornecer um código de exemplo que não é compilado quando as duas vidas úteis são'a
mas compila quando as vidas são'a
e'b
(ou vice-versa)?