title: Do tuples implement `Copy`?
body: <p>In the Rust Book, Chapter 18, they give an example of a tuple in pattern matching.</p>
  
  <pre><code>fn print_coordinates(&amp;(x, y): &amp;(i32, i32)) {
      println!("Current location: ({}, {})", x, y);
  }
  
  fn main() {
      let point = (3, 5);
      print_coordinates(&amp;point);   // point passed as reference
  }
  </code></pre>
  
  <p>Out of curiosity, I tried without passing as a reference like this.</p>
  
  <pre><code>fn print_coordinates((x, y): (i32, i32)) {
      println!("Current location: ({}, {})", x, y);
  }
  
  fn main() {
      let point = (3, 5);
      print_coordinates(point);   // point passed as value
      print_coordinates(point);   // point is still valid here
  }
  </code></pre>
  
  <p>It compiles and prints out the coordinates 2 times.</p>
  
  <p>Can tuples be passed into functions just like other primitive data types (numbers, booleans, etc.)?</p>