O que significam identificadores com aspas simples (') em Rust?
Olá! Comecei a estudar Rust recentemente e constantemente encontro em código alheio identificadores estranhos que começam com aspas simples, como `'a`, `'static`, `'b`. No começo pensei que fossem algum tipo de macro ou variáveis especiais, mas depois notei que eles aparecem frequentemente em declarações de funções e structs.\n\nAqui está um exemplo que encontrei na documentação:\n\n```rust\nfn longest<'a>(x: &'a str, y: &'a str) -> &'a str {\n if x.len() > y.len() { x } else { y }\n}\n```\n\nO que é `'a`? Por que ele fica entre colchetes angulares após o nome da função? Eu entendo que está relacionado a tempo de vida (lifetime), mas não consigo entender como isso funciona. Em outras linguagens, como C++ ou Java, nunca vi isso. Explique, por favor, em palavras simples, o que são essas criaturas e para que servem. Especialmente me deix