Erro "cannot move out of index of" em Rust: o que significa e como corrigir?
Olá! Comecei a estudar Rust e me deparei com um erro estranho ao trabalhar com vetor. Tenho uma struct `User` e estou tentando extrair um elemento do vetor por índice para passá-lo para uma função que assume a ownership. Aqui está meu código:
```rust
struct User {
name: String,
age: u32,
}
fn process_user(user: User) {
println!("Processing user: {}", user.name);
}
fn main() {
let mut users = vec![
User { name: "Alice".to_string(), age: 30 },
User { name: "Bob".to_string(), age: 25 },
];
let first_user = users[0]; // Erro: cannot move out of index of `Vec`
process_user(first_user);
}
```
O compilador exibe: `error[E0507]: cannot move out of index of 'Vec'`. Eu entendo que o Rust controla rigorosamente a ownership, mas por