rome_diagnostics_categories
This crate contains a static registry of all the diagnostic categories used throughout the Rome codebase
Code Generation
The list of categories is defined in src/categories.rs
using the
define_dategories!
macro, but instead of relying on conventional Rust macro
expansion this crate instead uses a build script (in build.rs
) to control how
the code resulting from the macro is generated.
Specifically this lets us generate new identifiers, which is something plain Rust macros cannot do, without having to use full-blown procedural macros, which would require creating and building yet another crate.