Loading...
Searching...
No Matches
ManifestAliases.h
Go to the documentation of this file.
1//
2// Created by Dave Smith on 3/7/26.
3//
4
5#ifndef MANIFESTALIASES_H
6#define MANIFESTALIASES_H
7
8namespace ml
9{
11
16 template<typename Manifest, typename = void>
17 struct ExtractImages {};
18
19 template<typename Manifest>
20 struct ExtractImages<Manifest, std::void_t<typename Manifest::Images>>
21 {
22 using Images = typename Manifest::Images;
23 };
24
29 template<typename Manifest, typename = void>
30 struct ExtractFonts {};
31
32 template<typename Manifest>
33 struct ExtractFonts<Manifest, std::void_t<typename Manifest::Fonts>>
34 {
35 using Fonts = typename Manifest::Fonts;
36 };
37
42 template<typename Manifest, typename = void>
43 struct ExtractSounds {};
44
45 template<typename Manifest>
46 struct ExtractSounds<Manifest, std::void_t<typename Manifest::Sounds>>
47 {
48 using Sounds = typename Manifest::Sounds;
49 };
50
55 template<typename Manifest, typename = void>
56 struct ExtractState {};
57
58 template<typename Manifest>
59 struct ExtractState<Manifest, std::void_t<typename Manifest::State>>
60 {
61 using State = typename Manifest::State;
62 };
63
68 template<typename Manifest, typename = void>
69 struct ExtractFlags {};
70
71 template<typename Manifest>
72 struct ExtractFlags<Manifest, std::void_t<typename Manifest::Flags>>
73 {
74 using Flags = typename Manifest::Flags;
75 };
76
81 template<typename Manifest, typename = void>
82 struct ExtractEvent {};
83
84 template<typename Manifest>
85 struct ExtractEvent<Manifest, std::void_t<typename Manifest::Event>>
86 {
87 using Event = typename Manifest::Event;
88 };
89
91
130 template<typename Manifest>
132 ExtractImages<Manifest>,
133 ExtractFonts<Manifest>,
134 ExtractSounds<Manifest>,
135 ExtractState<Manifest>,
136 ExtractFlags<Manifest>,
137 ExtractEvent<Manifest>
138 {};
139
140} // namespace ml
141
142#endif // MANIFESTALIASES_H
Base class for all Malena manifests.
Definition Manifest.h:81
Event
Framework-level enum for all built-in Malena events.
Definition Event.h:34
Definition Component.h:18
Pulls manifest inner type aliases into a class's scope.