.. _TypeInfoStructMember: TypeInfoStructMember ==================== .. code-block:: bl TypeInfoStructMember :: struct { name: string; base_type: *TypeInfo; offset_bytes: s32; index: s32; tags: s32; is_base: bool; } 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. .. code-block:: text TAG1 :: 0x1; TAG2 :: 0x2; **is_base** - True when member is inherrited base of the parent structure type. *Declared in: a.bl*