Erro "cannot move out of borrowed content" em Rust: como corrigir?
Olá a todos! Comecei a estudar Rust e me deparei com um erro que não consigo entender. Tenho uma struct `User` e uma função que deve modificar seu campo `name`. Aqui está o código:
```rust
struct User {
name: String,
age: u32,
}
fn update_name(user: &User, new_name: String) {
user.name = new_name; // Erro aqui
}
fn main() {
let user = User {
name: String::from("Alice"),
age: 30,
};
update_name(&user, String::from("Bob"));
println!("{}", user.name);
}
```
O compilador exibe: `cannot move out of borrowed content` e `cannot move out of behind a shared reference`. Eu entendo que estou passando `&User` — é uma referência imutável, mas quero modificar o campo `name`. Se eu alterar a assinatura para `&mut User`, o erro muda para `cannot borrow immu