Hello,
I'm new in Rust.
I want to change a value of struct in a vector, so I do that :
struct UserSession {
hash: u128,
user: String,
}
fn main() {
let session_list = vec![
UserSession {
hash: 0,
user: String::from("Marcello"),
},
UserSession {
hash: 0,
user: String::from("Omer"),
},
];
match session_list.iter().find(|x| x.user == "Carlos") {
Some(user_session) => {
user_session.hash = 4214431;
}
_ => {
println!("Unknow user");
}
}
}
but this doesn't compile :
error[E0594]: cannot assign to `user_session.hash`, which is behind a `&` reference
--> src/main.rs:19:13
|
18 | Some(user_session) => {
| ------------ consider changing this binding's type to be: `&mut UserSession`
19 | user_session.hash = 4214431;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `user_session` is a `&` reference, so the data it refers to cannot be written
Certainly easy but not for me