Como o Rust substitui o garbage collector? Alternativas ao GC no Rust
Olá, colegas! Estou migrando para o Rust depois de vários anos trabalhando com Java e Python, e me atormenta uma questão fundamental. Em Java, estou acostumado que o garbage collector (GC) libera automaticamente a memória quando os objetos se tornam inalcançáveis. Em Python — analogamente, contagem de referências e GC para referências cíclicas. Mas o Rust é fundamentalmente diferente: aqui não há garbage collector, e ainda assim a linguagem é considerada segura.
Eu escrevi um exemplo simples que em Java ou Python funcionaria sem problemas, mas em Rust levanta questões:
```rust
struct User {
name: String,
posts: Vec,
}
fn main() {
let user = User {
name: "Alice".to_string(),
posts: vec!["Hello".to_string()],
};
// Como o Rust sabe quando liberar a memória para user?
// O que aconteceria se eu p