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)?

questionAnswers(1)

yourAnswerToTheQuestion