Iterando através de um Vec dentro de uma estrutura - não é possível sair do conteúdo emprestado

Estou escrevendo uma função para uma estrutura que contém umVec onde eu tento percorrer oVec:

struct Object {
    pub v: Vec<f32>,
}

impl Object {
    pub fn sum(&self) -> f32 {
        let mut sum = 0.0;
        for e in self.v {
            sum += e;
        }
        sum
    }
}

No entanto, recebo o seguinte erro:

error[E0507]: cannot move out of borrowed content
 --> src/lib.rs:8:18
  |
8 |         for e in self.v {
  |                  ^^^^ cannot move out of borrowed content

Meu entendimento é que desdeself é emprestado e que a iteração do loop for está tentando mover os elementos dev para dentroe.

Pelo código de erro, eu li que uma solução em potencial é se apropriar, mas não tenho muita certeza de como fazer isso.

Não estou tentando modificar o vetor ou seus elementos. Eu só quero usar os elementos para executar alguma computação.

questionAnswers(1)

yourAnswerToTheQuestion