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

Go to the source code of this file.

Namespaces

namespace  helios
namespace  helios::ecs

Concepts

concept  helios::ecs::ResourceTrait
 Concept for valid resource types.
concept  helios::ecs::ResourceWithNameTrait
 Concept for resources that provide custom names.
concept  helios::ecs::ResourceWithThreadSafetyTrait
 Concept for resources that provide thread-safety trait.
concept  helios::ecs::AsyncResourceTrait
 Concept for async resources.
concept  helios::ecs::ResourceWithInsertionCallbackTrait
 Concept for resources that provide insertion callback.
concept  helios::ecs::ResourceWithRemovalCallbackTrait
 Concept for resources that provide removal callback.

Typedefs

using helios::ecs::ResourceTypeIndex = utils::TypeIndex
 Type index for resources.
using helios::ecs::ResourceTypeId = utils::TypeId
 Type id for resources.

Functions

template<ResourceTrait T>
constexpr std::string_view helios::ecs::ResourceNameOf () noexcept
 Gets name for a resource type.
template<ResourceTrait T>
constexpr std::string_view helios::ecs::ResourceNameOf (const T &) noexcept
 Gets name for a resource type.
template<ResourceTrait T>
consteval bool helios::ecs::IsResourceThreadSafe () noexcept
 Checks if a resource type is thread-safe.
template<ResourceTrait T>
consteval bool helios::ecs::IsResourceThreadSafe (const T &) noexcept
 Checks if a resource type is thread-safe.
template<ResourceTrait T>
constexpr void helios::ecs::ResourceCallOnInsert (T &resource, World &world) noexcept
 Calls insertion callback for a resource type if it exists.
template<ResourceTrait T>
constexpr void helios::ecs::ResourceCallOnRemove (T &resource, World &world) noexcept
 Calls removal callback for a resource type if it exists.