# `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.