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