Loading...
Searching...
No Matches
ManifestAliases.h
Go to the documentation of this file.
1// Copyright (c) 2025 Dave R. Smith. All rights reserved.
2// Malena Framework — Proprietary Software. See LICENSE for terms.
3
4//
5// Created by Dave Smith on 3/7/26.
6//
7
8#ifndef MALENA_MANIFESTALIASES_H
9#define MALENA_MANIFESTALIASES_H
10
12
13namespace ml
14{
16
21 template<typename Manifest, typename = void>
22 struct ExtractImages {};
23
24 template<typename Manifest>
25 struct ExtractImages<Manifest, std::void_t<typename Manifest::Images>>
26 {
27 using Images = typename Manifest::Images;
28 };
29
34 template<typename Manifest, typename = void>
35 struct ExtractFonts {};
36
37 template<typename Manifest>
38 struct ExtractFonts<Manifest, std::void_t<typename Manifest::Fonts>>
39 {
40 using Fonts = typename Manifest::Fonts;
41 };
42
47 template<typename Manifest, typename = void>
48 struct ExtractSounds {};
49
50 template<typename Manifest>
51 struct ExtractSounds<Manifest, std::void_t<typename Manifest::Sounds>>
52 {
53 using Sounds = typename Manifest::Sounds;
54 };
55
60 template<typename Manifest, typename = void>
61 struct ExtractState {};
62
63 template<typename Manifest>
64 struct ExtractState<Manifest, std::void_t<typename Manifest::State>>
65 {
66 using State = typename Manifest::State;
67 };
68
73 template<typename Manifest, typename = void>
74 struct ExtractFlags {};
75
76 template<typename Manifest>
77 struct ExtractFlags<Manifest, std::void_t<typename Manifest::Flags>>
78 {
79 using Flags = typename Manifest::Flags;
80 };
81
86 template<typename Manifest, typename = void>
87 struct ExtractEvent {};
88
89 template<typename Manifest>
90 struct ExtractEvent<Manifest, std::void_t<typename Manifest::Event>>
91 {
92 using Event = typename Manifest::Event;
93 };
94
96
135 template<typename Manifest>
137 ExtractImages<Manifest>,
138 ExtractFonts<Manifest>,
139 ExtractSounds<Manifest>,
140 ExtractState<Manifest>,
141 ExtractFlags<Manifest>,
142 ExtractEvent<Manifest>
143 {};
144
145} // namespace ml
146
147#endif // MALENA_MANIFESTALIASES_H
Base class for all Malena manifests.
Definition Manifest.h:51
Event
Framework-level enum for all built-in Malena events.
Definition Event.h:37
Definition Component.h:22
Pulls manifest inner type aliases into a class's scope.