title: What is this unwrap thing: sometimes it's unwrap sometimes it's unwrap_or
body: <blockquote>
    <p><em>Note</em> The specifics in this question regarding <code>read_line</code> and <code>~str</code> pertain to a pre-1.0 version of Rust. The general concepts about <code>unwrap</code> and <code>unwrap_or</code> remain relevant.</p>
  </blockquote>
  
  <p>I've encountered it while reading <a href="http://www.rustforrubyists.com/book/book.html"><em>Rust for Rubyists</em></a> i.e.:</p>
  
  <pre><code>let mut reader = BufferedReader::new(io::stdin());
  let input = reader.read_line().unwrap_or(~"nothing");
  </code></pre>