diff options
Diffstat (limited to 'utils/macro_rules/src')
| -rw-r--r-- | utils/macro_rules/src/lib.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/utils/macro_rules/src/lib.rs b/utils/macro_rules/src/lib.rs new file mode 100644 index 0000000..cbc4730 --- /dev/null +++ b/utils/macro_rules/src/lib.rs @@ -0,0 +1,29 @@ +//! CH Utilities - Macro Rules +//! +//! Provides convenient macros for developing the game CH + +#![deny(missing_docs)] + +/// Import modules and re-export all of their public items. +/// +/// This macro declares modules with `mod $module;` and then re-exports +/// everything from them with `pub use $module::*;`, making the items of the +/// modules available as if they were defined in the current scope. +/// +/// Supports both single and multiple module imports: +/// +/// # Examples +/// +/// ``` +/// import!(my_module); +/// import!(foo, bar, zsq); +/// ``` +#[macro_export] +macro_rules! import { + ($($module:ident),+ $(,)?) => { + $( + mod $module; + pub use $module::*; + )+ + }; +} |
