title: What does #[macro_use] before an extern crate statement mean?
body: <p>In Rust, I sometimes see <code>#[macro_use]</code> before an <code>extern crate</code> statement:</p>
  
  <pre><code>#[macro_use]
  extern crate gotham_derive;
  </code></pre>
  
  <p>What does this do compared to not having <code>#[macro_use]</code>?</p>
  
  <pre><code>extern crate gotham_derive;
  </code></pre>