Я хочу извлечь некоторые данные в виде вектора из некоторых структур, чтобы проверить, есть ли дубликаты
#[derive(Debug)]
struct Test {
id: i32,
name: String
}
fn main() {
let test1 = Test { id: 1, name: String::from("one") };
let test2 = Test { id: 2, name: String::from("two") };
let test3 = Test{ id: 3, name: String::from("one") };
let mut small_collection = Vec::new();
small_collection.push(test1);
small_collection.push(test2);
small_collection.push(test3);
let uniques : Vec<String> = small_collection.iter()
.map(|x| x.name.as_str())
.collect();
//let num_dups = clients.len() - uniques.len();
}
Программа создает small_collections структур. Однако после создания вектора я хочу проверить, есть ли дубликаты в поле Test.name.
Итак, я пытаюсь выполнить итерацию и создать новый вектор. Если len () для моих коллекций и сокращенных имен одинаковы, то дубликатов нет. В этом случае значение «единица» появляется дважды.
Как бы то ни было, я могу помочь?