Skip to content

[P3] Convert fixed-shape codegen sites to declarative macros (DatumType-style) #883

Description

@elasticdotventures

What

Audit b00t's build.rs/proc-macro codegen sites and convert the ones whose shape is fixed at compile time to declarative macros, following the pattern `DatumType`'s own `datum_type_table!` macro already uses (`datum_types.rs`) — a pure syntactic transform expanded from one static table, zero filesystem/environment dependence, hermetic by construction.

Why

This is a real, already-proven pattern in this exact codebase (not a hypothetical) — `DatumType` already avoids the non-hermetic-codegen problem entirely for its own derived methods. Extending the same technique elsewhere removes those sites from the hermeticity-audit backlog (#882) entirely rather than just documenting them as excluded from caching.

Scope note

Only applies to codegen whose input set is fixed/enumerable at compile time. Environment/filesystem-dependent codegen (e.g. "generate a match arm per file found in a directory scan") needs the different fix in the companion issue (include_str! + runtime parse), not this one.

Depends on

#882 (need the catalog first to know which sites are candidates)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions