Означает ли <'a,' b: 'a>, что время жизни' b должно пережить время жизни 'a?

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

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

Так как я не понимаю, что такое форма<'a, 'b: 'a> означает, что ни я не могу найти это упомянутое в книге Rust или справочнике Rust (по крайней мере, относительно продолжительности жизни), я просто попытался удалить то, что я не понимаю, чтобы увидеть, что происходит:

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

Компилируя это, я получаю эту ошибку:

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

И эта заметка:

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

Это имеет смысл для меня:'a а также'b Разные времена жизни, поэтому, чтобы быть в безопасности, Rust (проверка заимствований?) предполагает, что'a переживет'bи выдает ошибку.

Теперь я могу догадаться, что<'a, 'b: 'a> означает, что срок службы'b должно быть дольше, чем срок службы'a, Я угадал правильно? Или есть еще? Как я могу найти это задокументировано?

Ответы на вопрос(2)

Ваш ответ на вопрос