1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace manifest
5 {
6 // clang-format off
7 
8 enum class Expand{
9     Invalid,
10     None,
11     All,
12     Relevant,
13 };
14 
15 enum class StanzaType{
16     Invalid,
17     ComposeSystem,
18     DecomposeSystem,
19     ComposeResource,
20     DecomposeResource,
21     OEM,
22     RegisterResourceBlock,
23 };
24 
25 NLOHMANN_JSON_SERIALIZE_ENUM(Expand, {
26     {Expand::Invalid, "Invalid"},
27     {Expand::None, "None"},
28     {Expand::All, "All"},
29     {Expand::Relevant, "Relevant"},
30 });
31 
32 NLOHMANN_JSON_SERIALIZE_ENUM(StanzaType, {
33     {StanzaType::Invalid, "Invalid"},
34     {StanzaType::ComposeSystem, "ComposeSystem"},
35     {StanzaType::DecomposeSystem, "DecomposeSystem"},
36     {StanzaType::ComposeResource, "ComposeResource"},
37     {StanzaType::DecomposeResource, "DecomposeResource"},
38     {StanzaType::OEM, "OEM"},
39     {StanzaType::RegisterResourceBlock, "RegisterResourceBlock"},
40 });
41 
42 }
43 // clang-format on
44