Avatar ·

Error "cannot move out of borrowed content" en Rust: ¿cómo solucionarlo?

¡Hola a todos! Empecé a aprender Rust y me encontré con un error que no puedo entender. Tengo una estructura `User` y una función que debería modificar su campo `name`. Aquí está el código: ```rust struct User { name: String, age: u32, } fn update_name(user: &User, new_name: String) { user.name = new_name; // Error aquí } fn main() { let user = User { name: String::from("Alice"), age: 30, }; update_name(&user, String::from("Bob")); println!("{}", user.name); } ``` El compilador muestra: `cannot move out of borrowed content` y `cannot move out of behind a shared reference`. Entiendo que estoy pasando `&User` — es una referencia inmutable, pero quiero modificar el campo `name`. Si cambio la firma a `&mut User`, el error cambia a `cannot borrow immutable local variable 'user' as mutable`. Intenté agregar `mut` antes de `user` en `main`, pero entonces el compilador dice que no se puede tomar prestado como mutable porque ya está prestado como no