TypeInfoStructMember :: struct #compiler {
    name: string;
    base_type: *TypeInfo;
    offset_bytes: s32;
    index: s32;
    tags: s32;
    is_base: bool;


Detailed information about structure member.


  • name Member type name.

  • base_type Member type info.

  • offset_bytes Byte-offset of member inside structure ABI.

  • index Order in structure.

  • tags User tags contains merge of all tag values assigned to member in structure declaration. Basically tags behave like a flags value, merge is done by binary or of all defined tag values. User tags can be defined by #tags hash directive written after member type in following way:

    Foo :: struct {
        i: s32 #tags TAG1;
        j: s32 #tags TAG1, TAG2;

    Where tags must be compile-time constant of s32 type.

    TAG1 :: 0x1;
    TAG2 :: 0x2;
  • is_base True when member is inherrited base of the parent structure type.

Declared in: a.bl