Como retornar uma referência a uma variável criada dentro de uma função em Rust?
Olá a todos! Comecei a estudar Rust recentemente e me deparei com um problema que não consigo resolver. Estou escrevendo uma função que cria uma String internamente, a processa e depois quer retornar uma referência a essa string. Aqui está o código simplificado:
```rust
fn get_data() -> &str {
let data = String::from("Hello, world!");
&data
}
```
O compilador gera um erro: `cannot return reference to local variable 'data'`. Eu entendo que isso está relacionado a tempos de vida (lifetimes), mas não compreendo totalmente a essência. Em C++, eu poderia retornar um ponteiro para um array local (embora seja UB), e em Python não há esse problema. Como faço para retornar corretamente uma referência a uma string criada dentro da função? Preciso que a função retorne exatamente &str, e não String, porque depois vou passá-la para outras funções que esperam um slice.
Li sobre ownership e borrowing, mas especificamente este caso me deixa confuso. Por que o Rust proíbe isso e quais são as soluções alternativas? Talvez