Skip to main content

Traits.ixx File

Compile-time traits for ECS component lifecycle hooks. More...

Included Headers

#include <concepts>

Namespaces Index

namespacehelios
namespaceecs
namespaceconcepts
namespacetraits

Description

Compile-time traits for ECS component lifecycle hooks.

File Listing

The file content with the documentation metadata removed is:

1
5module;
6
7#include <concepts>
8
9export module helios.ecs.concepts.Traits;
10
11
12export namespace helios::ecs::concepts::traits {
13
38 template<typename T>
39 concept HasOnRemove = requires(T t) {
40 {t.onRemove()} -> std::convertible_to<bool>;
41 };
42
43
53 template<typename T>
54 concept HasOnAcquire = requires(T t) {
55 {t.onAcquire()} -> std::same_as<void>;
56 };
57
58
68 template<typename T>
69 concept HasOnRelease = requires(T t) {
70 {t.onRelease()} -> std::same_as<void>;
71 };
72
95 template<typename T>
96 concept HasToggleable = requires(T t) {
97 {t.disable()} -> std::same_as<void>;
98 {t.enable()} -> std::same_as<void>;
99 };
100
126 template<typename T>
127 concept HasClone = requires(T t, const T& source) {
128 {t.onClone(source)} -> std::same_as<void>;
129 };
130
151 template<typename T>
152 concept HasActivatable = requires(T t) {
153 {t.onActivate()} -> std::same_as<void>;
154 {t.onDeactivate()} -> std::same_as<void>;
155 };
156
157
158}

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.