Skip to main content

StateTransitionId.ixx File

Type trait for mapping state types to transition ID types. More...

Included Headers

#include <cstdint> #include <type_traits>

Namespaces Index

namespacehelios
namespaceengine

Main engine module aggregating core infrastructure and game systems. More...

namespacestate

Generic, template-based state management system. More...

namespacetypes

Type definitions for state transitions. More...

Classes Index

structInvalidStateTransitionId

Placeholder type for missing specializations. More...

structStateTransitionId<StateType>

Type trait mapping StateType to its TransitionId type. More...

Description

Type trait for mapping state types to transition ID types.

File Listing

The file content with the documentation metadata removed is:

1/**
2 * @file StateTransitionId.ixx
3 * @brief Type trait for mapping state types to transition ID types.
4 */
5module;
6
7#include <cstdint>
8#include <type_traits>
9
10export module helios.engine.state.types.StateTransitionId;
11
12
13
14export namespace helios::engine::state::types {
15
16 /**
17 * @brief Helper for dependent false in static_assert.
18 */
19 template<class...>
20 inline constexpr bool dependent_false_v = false;
21
22 /**
23 * @brief Placeholder type for missing specializations.
24 */
26
27 /**
28 * @brief Type trait mapping StateType to its TransitionId type.
29 *
30 * @details Must be specialized for each state type. The specialization
31 * must define a `Type` alias for the transition ID enum.
32 *
33 * @tparam StateType The state enum type.
34 *
35 * @code
36 * // Specialization example:
37 * template<>
38 * struct StateTransitionId<GameState> {
39 * using Type = GameStateTransitionId;
40 * };
41 * @endcode
42 */
43 template<typename StateType>
46 "Missing specialization: StateTransitionId<StateType>::Type must be defined in bindings.");
47
49 };
50
51 /**
52 * @brief Convenience alias for transition ID type lookup.
53 *
54 * @tparam StateType The state enum type.
55 */
56 template<class StateType>
58}

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.