Refureku v2.2.0
C++17 runtime reflection library.
EntityCast.h
1
8#pragma once
9
10#include "Refureku/TypeInfo/Entity/Entity.h"
11
12namespace rfk
13{
14 //Forward declarations
15 class Archetype;
17 class Struct;
18 using Class = Struct;
19 class ClassTemplate;
20 using StructTemplate = ClassTemplate;
21 class ClassTemplateInstantiation;
22 using StructTemplateInstantiation = ClassTemplateInstantiation;
23 class Enum;
24 class EnumValue;
25 class Namespace;
26 class Field;
27 class StaticField;
28 class Method;
29 class StaticMethod;
30 class Variable;
31 class Function;
32
40 RFK_NODISCARD REFUREKU_API
41 Archetype const* archetypeCast(Entity const* entity) noexcept;
42
50 RFK_NODISCARD REFUREKU_API
52
60 RFK_NODISCARD REFUREKU_API
61 Struct const* structCast(Entity const* entity) noexcept;
62
70 RFK_NODISCARD REFUREKU_API
71 StructTemplate const* structTemplateCast(Entity const* entity) noexcept;
72
80 RFK_NODISCARD REFUREKU_API
82
90 RFK_NODISCARD REFUREKU_API
91 Class const* classCast(Entity const* entity) noexcept;
92
100 RFK_NODISCARD REFUREKU_API
101 ClassTemplate const* classTemplateCast(Entity const* entity) noexcept;
102
110 RFK_NODISCARD REFUREKU_API
112
120 RFK_NODISCARD REFUREKU_API
121 Field const* fieldCast(Entity const* entity) noexcept;
122
130 RFK_NODISCARD REFUREKU_API
131 StaticField const* staticFieldCast(Entity const* entity) noexcept;
132
140 RFK_NODISCARD REFUREKU_API
141 Method const* methodCast(Entity const* entity) noexcept;
142
150 RFK_NODISCARD REFUREKU_API
151 StaticMethod const* staticMethodCast(Entity const* entity) noexcept;
152
160 RFK_NODISCARD REFUREKU_API
161 Enum const* enumCast(Entity const* entity) noexcept;
162
170 RFK_NODISCARD REFUREKU_API
171 EnumValue const* enumValueCast(Entity const* entity) noexcept;
172
180 RFK_NODISCARD REFUREKU_API
181 Namespace const* namespaceCast(Entity const* entity) noexcept;
182
190 RFK_NODISCARD REFUREKU_API
191 Variable const* variableCast(Entity const* entity) noexcept;
192
200 RFK_NODISCARD REFUREKU_API
201 Function const* functionCast(Entity const* entity) noexcept;
202}
Definition: Archetype.h:16
Definition: ClassTemplate.h:24
Definition: ClassTemplateInstantiation.h:23
Definition: Entity.h:29
Definition: Enum.h:18
Definition: EnumValue.h:19
Definition: Field.h:18
Definition: Function.h:17
Definition: FundamentalArchetype.h:15
Definition: Method.h:24
Definition: Namespace.h:26
Definition: StaticField.h:19
Definition: StaticMethod.h:16
Definition: Struct.h:40
Definition: Variable.h:16
Definition: Allocator.h:16
RFK_NODISCARD REFUREKU_API Method const * methodCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Method.
RFK_NODISCARD REFUREKU_API StructTemplate const * structTemplateCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::StructTemplate.
RFK_NODISCARD REFUREKU_API Variable const * variableCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Variable.
RFK_NODISCARD REFUREKU_API StaticField const * staticFieldCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::StaticField.
RFK_NODISCARD REFUREKU_API FundamentalArchetype const * fundamentalArchetypeCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::FundamentalType.
RFK_NODISCARD REFUREKU_API Struct const * structCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Struct.
RFK_NODISCARD REFUREKU_API EnumValue const * enumValueCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::EnumValue.
RFK_NODISCARD REFUREKU_API Class const * classCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Class.
RFK_NODISCARD REFUREKU_API Enum const * enumCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Enum.
RFK_NODISCARD REFUREKU_API Archetype const * archetypeCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Archetype.
RFK_NODISCARD REFUREKU_API Namespace const * namespaceCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Namespace.
RFK_NODISCARD REFUREKU_API Function const * functionCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Function.
RFK_NODISCARD REFUREKU_API StructTemplateInstantiation const * structTemplateInstantiationCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::StructTemplateInstantiation.
RFK_NODISCARD REFUREKU_API StaticMethod const * staticMethodCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::StaticMethod.
RFK_NODISCARD REFUREKU_API ClassTemplateInstantiation const * classTemplateInstantiationCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::ClassTemplateInstantiation.
RFK_NODISCARD REFUREKU_API Field const * fieldCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::Field.
RFK_NODISCARD REFUREKU_API ClassTemplate const * classTemplateCast(Entity const *entity) noexcept
Try to cast a rfk::Entity to rfk::ClassTemplate.