Here is a slightly simplified part of your code that demonstrates the problem:
struct User {
reference: String,
email: String
}
let users = vec![
User { reference: "1".into(), email: "a@a.com".into() },
User { reference: "2".into(), email: "b@b.com".into() }
];
let records: Vec<Vec<String>> = vec![
vec!["1".into()],
vec!["2".into()],
vec!["3".into()]
];
for mut record in records {
let usr = users.iter().find(|ur| ur.reference == record[0]);
match usr {
Some(u) => record.insert(1, u.email),
None => record.insert(1, "Unknown".into())
}
// do whatever with record
}
usr let usr &User, User, iter() , Iterator<Item=&User>, , , find() Option<&User>. , String u: &User - . BTW, - , , ( ).
- clone():
record.insert(1, u.email.clone())
, User, , .