title: Rust modules, combine two use statements
body: <p>From documentation</p>
  
  <pre><code>use std::io;
  use std::io::Write;
  </code></pre>
  
  <p>Two use statements where one is a subpath of the other</p>
  
  <p>The common part of these two paths is std::io, and that’s the complete first path. To merge these two paths into one use statement, we can use self in the nested path, as shown in Listing </p>
  
  <pre><code>use std::io::{self, Write};
  </code></pre>
  
  <p>Combining the paths into one use statement</p>
  
  <p>This line brings <code>std::io</code> and <code>std::io::Write</code> into scope.</p>
  
  <p>if i brought <code>std::io</code> in the scope, isn't it obvious that <code>io::Write</code> will be available automatically in the scope provided Write is a public item? Why it needs to be imported separately? </p>