title: Cannot find macro in this scope
body: <p>I have been trying to add my macro with no success. Check out the code:</p>
  
  <pre><code>extern crate nrf52;
  
  #[macro_use]
  use nrf52::uart::UARTE0;
  use kernel::hil::uart::{self, UART};
  
  const BUFFER_SIZE_2048: usize = 2048;
  
  pub unsafe fn run() {
      let output = scan!("2 false fox", char::is_whitespace, u8, bool, String);
  
      &amp;nrf52::uart::UARTE0.init(uart::UARTParams {
          baud_rate: 115200,
          stop_bits: uart::StopBits::One,
          parity: uart::Parity::None,
          hw_flow_control: false,
      });
  
      let buf = static_init!([u8; BUFFER_SIZE_2048], [0; BUFFER_SIZE_2048]);
  
      for (ascii_char, b) in (33..126).cycle().zip(buf.iter_mut()) {
          *b = ascii_char;
      }
  
      transmit_entire_buffer(buf);
  }
  
  #[allow(unused)]
  unsafe fn transmit_entire_buffer(buf: &amp;'static mut [u8]) {
      &amp;UARTE0.transmit(buf, BUFFER_SIZE_2048);
  }
  
  macro_rules! scan {
      ( $string:expr, $sep:expr, $( $x:ty ),+ ) =&gt; {{
          let mut iter = $string.split($sep);
          ($(iter.next().and_then(|word| word.parse::&lt;$x&gt;().ok()),)*)
      }}
  }
  </code></pre>
  
  <p>The error message i am getting is: <code>error: cannot find macro `scan!` in this scope</code>, <code>= help: have you added the `#[macro_use]` on the module/import?</code></p>
  
  <p>I am simply trying to create a macro that will work as a scanf in this project. </p>