pub const CompositeType = struct {
pub const ops = [_]AbbrevOp{
.{ .literal = @backingInt(ModuleBlock.MetadataBlock.Code.COMPOSITE_TYPE) },
.{ .literal = 0 | 0x2 }, // is distinct | is not used in old type ref
.{ .fixed = 32 }, // tag
MetadataAbbrev, // name
MetadataAbbrev, // file
LineAbbrev, // line
MetadataAbbrev, // scope
MetadataAbbrev, // underlying type
.{ .vbr = 6 }, // size in bits
.{ .vbr = 6 }, // align in bits
.{ .literal = 0 }, // offset in bits
.{ .fixed = 32 }, // flags
MetadataAbbrev, // elements
.{ .literal = 0 }, // runtime lang
.{ .literal = 0 }, // vtable holder
.{ .literal = 0 }, // template params
.{ .literal = 0 }, // raw id
.{ .literal = 0 }, // discriminator
.{ .literal = 0 }, // data location
.{ .literal = 0 }, // associated
.{ .literal = 0 }, // allocated
.{ .literal = 0 }, // rank
.{ .literal = 0 }, // annotations
};
tag: u32,
name: Builder.Metadata.String.Optional,
file: Builder.Metadata.Optional,
line: u32,
scope: Builder.Metadata.Optional,
underlying_type: Builder.Metadata.Optional,
size_in_bits: u64,
align_in_bits: u64,
flags: Builder.Metadata.DIFlags,
elements: Builder.Metadata.Optional,
}