Skip to content

TypeInfoStructMember

Declaration

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

Description

Detailed information about structure member.

Members

  • 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