I can see in my docs that rialight_util contains a root map macro, but that macro should be at rialight_util::template_string only. It's visible both at rialight_util and at rialight_util::template_string.
I'm exposing the template_string module without #[macro_use].
In the playground I've played with removing #[macro_export], but then the pub use macro_name; item doesn't work.
So The Little Book of Rust Macros has this example:
mod a {
// X!(); // undefined
}
mod b {
// X!(); // undefined
macro_rules! X { () => {}; }
X!(); // defined
}
mod c {
// X!(); // undefined
}
Fine, I understand it. But there's no way to not use #[macro_export] because I need rialight_util::template_string::map to be accessible from anywhere, not private to that module.
The book says #[macro_export] exports the macro to the crate root... this is the problem.