L'utilisation de déplacé valeurs

Je suis en train de calculer la 10,001 st le premier à Rust (Projet Euler 7), et comme une partie de cela, ma méthode pour vérifier si un entier est premier fait référence à un vecteur. Cependant, lorsque j'essaie de référence du vecteur, j'obtiens l'erreur suivante:

error: use of moved value: `primes`
note: `primes` was previously moved here because it has type `collections::vec::Vec<u64>`, which is non-copyable
error: use of moved value: `primes`
error: aborting due to 2 previous errors

Mon code source est ci-dessous:

fn main(){

    let mut count: u32 = 1;
    let mut num: u64 = 1;
    let mut primes: Vec<u64> = Vec::new();
    primes.push(2);


    while count < 10001{
        num += 2;
        if vectorIsPrime(num, primes){
            count+=1;
            primes.push(num);
        }
    }

}

fn vectorIsPrime(num: u64, p: Vec<u64>) -> bool{

    for i in p{
        if num > i && num % i != 0{
            return false;
        }
    }

    true

}

Que dois-je faire pour primes afin d'être en mesure d'accéder à l'intérieur de la vectorIsPrime fonction?

Aussi, ceux qui cherchent à l'utiliser pour les aider dans leur projet d'Euler problème de la Rouille, j'ai fait une erreur dans mon vectorIsPrime méthode, il faut lire if num > i && num % i == 0 plutôt que if num >= i && num % i != 0
Vous pourriez avoir édité la question, au lieu de commenter. Je l'ai juste fait pour vous.
Merci. J'ai pensé commentaire, depuis ma question du code a été brisé pour commencer. En commentant, les gens peuvent voir que c'est un problème dans les réponses ci-dessous.
Permettez-moi de résoudre la question 😉

OriginalL'auteur mjkaufer | 2015-03-01