Передача HashSet <String> в функцию в Rust

I am attempting to pass a HashSet to a function in which it will be read, but I am getting the error "use of moved value: 'target_kmers'".

Here is a minimal example of what I'm trying to do, and basically, the HashSet will be defined again for every loop and passed into the function check_if_piece_qualifies(). However the compiler says that the value (the HashSet) is moved in previous iteration of loop, with the specific error: note: move occurs because 'target_kmers' has type 'std::collections::HashSet', which does not implement the 'Copy' trait.

let mut main_dna_pieces is defined before as a beginning list:

for (count, organism) in organisms.iter().enumerate() {
      let mut pieces_kept: Vec = Vec::new();
      let organism_data_path = &[base_path, organism].concat();
      debug!("{}/{}", count+1, organisms.len());
      let mut target_dna_pieces = HashSet::new();
      match std::fs::read_to_string(organism_data_path) {
          Ok(t) => {
              let dna_pieces_split = t.split(" ");
              for dna_piece in dna_pieces_split {
                  target_dna_pieces.insert(String::from(dna_piece));
              }
          },
          Err(e) => panic!("couldn't open file", e.to_string())
      }

      while let Some(dna_piece) = main_dna_pieces.pop() {
          if check_if_piece_qualifies(&dna_piece, target_dna_pieces) {
              pieces_kept.push(dna_piece);
          }
      }
      main_dna_pieces = pieces_kept;

      //stop looking when no pieces left
      if main_dna_pieces.len() <= 0 {
          break;
      }
  }

Should I rather pass in the HashSet as a reference, or how would that be possible? Just passing it as &target_dna_pieces obviously didn't work. Keeping a low memory footprint is very important.

0
Rust
Rust
996 участник(ов)

Запрещено: — оскорбления; — nsfw контент; — флуд, флейм и спам; — избыток оффтоп тем; Правила и ссылки: t.me/rustlang_ru/178438 Флудилка — @rustjerk Оффтопик — @rust_offtopic Новичкам — @rust_beginners_ru Вакансии и резюме — @rust_jobs, @rustlang_jobs

Rust Beginners
Rust Beginners
314 участник(ов)

https://t.me/this_week_in_rust

Rust evangelism strikeforce
Rust evangelism strikeforce
153 участник(ов)

Бремя белого человека, феминизм третьей волны, сайты в зип архивах, театры безопасности и новые проекты шрамко, как жить после 30 COC: https://jerk.rs

embedded.rs
embedded.rs
121 участник(ов)

Rust, микроконтроллеры и кошкодевочки

Rust Jobs — чат
Rust Jobs — чат
116 участник(ов)

Вакансии отправляются в: @rustlang_jobs_feed См. также: @nodejs_ru, @backend_jobs, @backend_ru, @javascript_jobs Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m Правила чата: http://bit.ly/our_etiquette

rust_offtopic
rust_offtopic
110 участник(ов)

Запрещено: — оскорбления; — nsfw контент; — флуд, флейм и спам; — чрезмерное использование emoji и стикеров; Флудилка — @rustjerk. Новичкам — @rust_beginners_ru Вакансии и резюме @rustlang_jobs @rust_jobs

Rust Jobs - вакансии & резюме
Rust Jobs - вакансии & резюме
86 участник(ов)

Обсуждение вакансий и резюме, связанных с языком программирования Rust. Основные чаты: @rustlang_ru @rust_offtopic