<'A,' b: 'a> significa que a vida' b deve sobreviver à vida 'a?

Eu quero implementar um construtor semelhante à depuraçãoconstrutores definido pela biblioteca padrão. Eles são definidos usando estruturas como as seguintes:

struct DebugFoo<'a, 'b: 'a> {
    fmt: &'a mut std::fmt::Formatter<'b>
}

Desde que eu não entendo o que a forma<'a, 'b: 'a> significa que nem posso encontrá-lo mencionado no livro Rust ou na referência Rust (pelo menos em relação à vida útil), tentei remover o que não entendi para ver o que acontece:

struct DebugFoo<'a, 'b> {
    fmt: &'a mut std::fmt::Formatter<'b>
}

Compilando, recebo este erro:

in type `&'a mut core::fmt::Formatter<'b>`, reference has a longer 
lifetime than the data it references

E esta nota:

the pointer is valid for the lifetime 'a as defined on the struct at 1:0
but the referenced data is only valid for the lifetime 'b as defined on
the struct at 1:0

Faz sentido para mim:'a e'b Há vidas diferentes, portanto, para estar do lado seguro, Rust (o verificador de empréstimos?) assume que'a sobreviverá'be lança o erro.

Agora posso adivinhar<'a, 'b: 'a> significa que a vida'b deve ser maior que a vida útil'a. Eu adivinhei certo? Ou tem mais? Como posso encontrá-lo documentado?

questionAnswers(2)

yourAnswerToTheQuestion