Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
component.hpp File Reference
#include <helios/utils/type_info.hpp>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <string_view>
#include <type_traits>

Go to the source code of this file.

Classes

struct  helios::ecs::ComponentTraits< T >
 Component traits for optimization decisions. More...
class  helios::ecs::ComponentTypeInfo
 Component type info for runtime operations. More...
struct  std::hash< helios::ecs::ComponentTypeInfo >

Namespaces

namespace  helios
namespace  helios::ecs
namespace  std
 STL namespace.

Concepts

concept  helios::ecs::ComponentTrait
 Concept to check if a type can be used as a component.
concept  helios::ecs::TagComponentTrait
 Concept to check if the type is considered a tag component.
concept  helios::ecs::ComponentWithNameTrait
 Concept for components that provide a name.
concept  helios::ecs::ComponentWithStorageTypeTrait
 Concept for components that provide a storage type.
concept  helios::ecs::ArchetypeComponentTrait
 Concept for components that are stored in an archetype.
concept  helios::ecs::SparseComponentTrait
 Concept for components that are stored in a sparse set.

Typedefs

using helios::ecs::ComponentTypeIndex = utils::TypeIndex
 Type index for components.
using helios::ecs::ComponentTypeId = utils::TypeId
 Type id for components.

Enumerations

enum class  helios::ecs::ComponentStorageType : uint8_t { helios::ecs::kArchetype , helios::ecs::kSparseSet }
 Storage type for components. More...

Functions

template<ComponentTrait T>
constexpr std::string_view helios::ecs::ComponentNameOf () noexcept
 Component name for debugging and serialization.
template<ComponentTrait T>
constexpr std::string_view helios::ecs::ComponentNameOf (const T &) noexcept
 Component name for debugging and serialization.
template<ComponentTrait T>
consteval ComponentStorageType helios::ecs::ComponentStorageTypeOf () noexcept
 Component storage type.
template<ComponentTrait T>
consteval ComponentStorageType helios::ecs::ComponentStorageTypeOf (const T &) noexcept
 Component storage type.