IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::concepts::ModuleNegotiator Concept Reference

#include <ice/module_concepts.hxx>

Concept definition

template<typename T>
concept ModuleNegotiator = requires(T const& t, ice::StringID_Arg id, ice::FnModuleSelectAPI* api) {
{ t.query_apis(id, ice::u32{}, (ice::ModuleAPI*) nullptr, (ice::u32*)nullptr) } -> std::convertible_to<bool>;
{ t.register_api(id, api) } -> std::convertible_to<bool>;
{ t.from_app() } -> std::convertible_to<bool>;
} && requires(T const& t, ice::ProcAPIQuickRegisterFunc<APIConceptStruct> func) {
{ t.register_api(func) } -> std::convertible_to<bool>;
}
Definition module_concepts.hxx:32
Definition devui_module.hxx:16
void(*)(T &out_api) noexcept ProcAPIQuickRegisterFunc
Definition module_types.hxx:28
std::conditional_t< ice::build::Constant_StringID_DebugInfoEnabled, StringID const &, StringID > StringID_Arg
Argument type used to pass ice::StringID values to functions.
Definition stringid.hxx:23
std::uint32_t u32
Definition types.hxx:26
bool(ice::StringID_Hash, ice::u32, ice::ModuleAPI *) FnModuleSelectAPI
Definition module_types.hxx:25
Stores information about a single API entry.
Definition module_info.hxx:33