Luna::StructureTypeDesc

Describes one structure type.

struct Luna::StructureTypeDesc

Member objects

  • Guid guid

    The GUID of the structure type. This should be unique for every type.

  • Name name

    The name of the structure type.

  • Name alias

    The alias of the structure type. This can be empty. The alias is used to identify types with the same name. This can be used for generic specialization types.

  • usize size

    The size of the structure type, this should include the size for the base type of this type.

  • usize alignment

    The alignment of the structure type.

  • typeinfo_t base_type

    The base type of this structure type.

  • structure_ctor_t* ctor

    The constructor function for this type. If nullptr, the default constructor will be used. See remarks of construct_type for default constructor behavior.

  • structure_dtor_t* dtor

    The destructor function for this type. If nullptr, the default destructor will be used. See remarks of destruct_type for default constructor behavior.

  • structure_copy_ctor_t* copy_ctor

    The copy constructor for this type. If nullptr, the default copy constructor will be used. See remarks of copy_construct_type for default constructor behavior.

  • structure_move_ctor_t* move_ctor

    The move constructor for this type. If nullptr, the default move constructor will be used. See remarks of move_construct_type for default constructor behavior.

  • structure_copy_assign_t* copy_assign

    The copy assignment operator for this type. If nullptr, the default copy assignment operator will be used. See remarks of copy_assign_type for default constructor behavior.

  • structure_move_assign_t* move_assign

    The mvoe assignment operator for this type. If nullptr, the default move assignment operator will be used. See remarks of move_assign_type for default constructor behavior.

  • Span properties

    The properties of this structure type.

  • bool trivially_relocatable

    Whether this structure is trivially relocatable. One structure is trivially relocatable if its content can be moved to another memory address using memcpy, and using the instance on new memory location behaves the same as the instance on old memory location.