title: How to access the BufReader twice?
body: <p>Trying to access the variable <em>sentences</em> for a second time causes <code>value used here after move</code>, I want to understand how to store the total without causing this problem.</p>
  
  <p>I tried to copy the iterator but I can't find a way to make it work or how is the correct way to do it.</p>
  
  <pre><code>extern crate regex;
  
  use std::fs::File;
  use std::path::Path;
  use std::io::{BufReader, BufRead};
  
  fn main() {
      let sentences_path = Path::new("csv/testSentences.csv");
      let sentences = BufReader::new(File::open(&amp;sentences_path).unwrap());
  
      let total = sentences.lines().count();
  
      for (index, sentence) in sentences.lines().enumerate() {
          let line = sentence.unwrap();
          println!("Processed {} of {}, {}", index, total, line);
      }
  
      println!("Total {}", total);
  }
  </code></pre>