title: Why is an Option<i32> not consumed when it is passed to a function?
body: <p>The <code>plus_one</code> function doesn't take a reference as an argument. Shouldn't the ownership of five be passed to <code>plus_one</code>? Why is <code>five</code> still usable?</p>
  
  <pre><code>fn plus_one(x: Option&lt;i32&gt;) -&gt; Option&lt;i32&gt; {
      match x {
          None =&gt; None,
          Some(i) =&gt; Some(i + 1),
      }
  }
  
  fn main() {
      let five = Some(5);
      let six = plus_one(five);
      println!("{}", five.unwrap());
      println!("{}", six.unwrap());
      let none = plus_one(None);
  }
  </code></pre>