title: Wrong number of type arguments: expected 1 but found 0
body: <p>I'm trying to pass a reference of <a href="https://doc.rust-lang.org/std/io/struct.BufReader.html" rel="nofollow noreferrer"><code>std::io::BufReader</code></a> to a function:</p>
  
  <pre><code>use std::{fs::File, io::BufReader};
  
  struct CompressedMap;
  
  fn parse_cmp(buf: &amp;mut BufReader) -&gt; CompressedMap {
      unimplemented!()
  }
  
  fn main() -&gt; Result&lt;(), Box&lt;dyn std::error::Error&gt;&gt; {
      let mut buf = BufReader::new(File::open("data/nyc.cmp")?);
  
      let map = parse_cmp(&amp;mut buf);
  
      Ok(())
  }
  </code></pre>
  
  <p>I get this error message:</p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0107]: wrong number of type arguments: expected 1, found 0
   --&gt; src/main.rs:5:24
    |
  5 | fn parse_cmp(buf: &amp;mut BufReader) -&gt; CompressedMap {
    |                        ^^^^^^^^^ expected 1 type argument
  </code></pre>
  
  <p>What am I missing here?</p>