proc_macro3/
lib.rs

1#[cfg(feature = "proc-macro2")]
2#[doc(hidden)]
3pub use proc_macro2 as _proc_macro2_impl;
4#[cfg(not(feature = "proc-macro2"))]
5#[doc(hidden)]
6pub mod _proc_macro2_impl {}
7
8/// creates a module with any name (by default `proc_macro`) that
9/// re-exports either all of `proc_macro` or all of `proc_macro2` items.
10/// 
11/// should not be used in a `proc-macro` context if the `proc_macro2` feature is set
12#[macro_export]
13macro_rules! import {
14    ($name:ident) => {
15        mod $name {
16            use $crate::_proc_macro2_impl::*;
17            #[cfg(proc_macro)]
18            extern crate proc_macro as _proc_macro_impl;
19            pub use _proc_macro_impl::*;
20        }
21    };
22    () => { import!(proc_macro) };
23}