A pair of alignments, ABI-mandated and preferred.
An identifier that specifies the address space that some operation
should operate on. Special address spaces have an effect on code generation,
depending on the target and the address spaces it implements.
Alignment of a type in bytes (always a power of two).
The source-order index of a field in a variant.
Note that this information is advisory only, and backends are free to ignore it.
It can only be used to encode potential optimizations, but no critical information.
Represents the repr options provided by the user.
Size of a type in bytes.
Parsed Data layout
for a target, which contains everything needed to compute layouts.
The layout of a type, alongside the type itself.
Provides various type traversal APIs (e.g., recursing into fields).
The source-order index of a variant in a type.
Inclusive wrap-around range of valid values, that is, if
start > end, it represents
start..=MAX, followed by