title: Idiomatic way to use filter()
body: <p>When using <code>filter</code>, you receive a reference because <a href="https://doc.rust-lang.org/book/iterators.html" rel="nofollow noreferrer"><code>filter</code> does not return ownership</a>. However <code>iter()</code> already references what you are iterating over so you get code that looks like this:</p>
  
  <pre><code>fn main() {
      let mut vec: Vec&lt;(bool, i32)&gt; = Vec::new();
      vec.push((true, 1));
      vec.push((false, 2));
      vec.push((true, 3));
      for &amp;(_, x) in vec.iter().filter(|&amp;&amp;(exists, _)| exists) {
          println!("{}", x);
      }
  }
  </code></pre>
  
  <p>That seems like a lot of <code>&amp;</code> to me. Is this considered the idiomatic way to implement <code>filter()</code>?</p>