Skip to main content

HasSubmit.ixx File

Concept for types that can accept commands via submit(). More...

Included Headers

#include <concepts>

Namespaces Index

namespacehelios
namespaceengine

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

namespaceruntime

Runtime infrastructure for game execution and lifecycle orchestration. More...

namespaceworld

World state management, resource registry, and per-frame update context. More...

namespacecommon

Shared type definitions, concepts, and tags used across engine subsystems. More...

namespaceconcepts

Compile-time concepts for engine role classification and capability detection. More...

Description

Concept for types that can accept commands via submit().

File Listing

The file content with the documentation metadata removed is:

1/**
2 * @file HasSubmit.ixx
3 * @brief Concept for types that can accept commands via submit().
4 */
5module;
6
7#include <concepts>
8
9export module helios.engine.common.concepts.HasSubmit;
10
11export namespace helios::engine::runtime::world {
12 class UpdateContext;
13}
14
16
17 /**
18 * @brief Constrains types that can accept a command via a noexcept submit() method.
19 *
20 * @details Used by CommandHandlerRegistry to verify that a handler type
21 * provides the required `submit(const CommandType&) noexcept -> bool`
22 * interface before registering it as a command handler.
23 *
24 * @tparam OwningT The handler type.
25 * @tparam CommandType The command type accepted by the handler.
26 *
27 * @see CommandHandlerRegistry
28 */
29 template<typename OwningT, typename CommandType>
30 concept HasSubmit = requires(OwningT& owner, const CommandType& cmd) {
31 { owner.submit(cmd) } noexcept -> std::same_as<bool>;
32 };
33
34}
35
36

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.