1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#![feature(core_intrinsics)]

#[macro_export]
macro_rules! t {
  ($resource:expr) => (type_of($resource));
  ($resource:ident) => (type_of($resource));
}

#[macro_export]
macro_rules! pt {
  ($resource:expr) => (println!("{:?}", type_of($resource)));
  ($resource:ident) => (println!("{:?}", type_of($resource)));
}

pub extern fn type_of<'a, T>(_: T) -> &'a str {
  unsafe { std::intrinsics::type_name::<T>() }
}