1 const std::array<std::string, ${len(meta)}> meta = {
2 % for m in meta:
3     "${m.name}"s,
4 % endfor
5 };
6 
7 const std::array<std::string, ${len(interfaces)}> interfaces = {
8 % for i in interfaces:
9     "${i.name}"s,
10 % endfor
11 };
12 
13 const std::array<std::string, ${len(propertynames)}> properties = {
14 % for p in propertynames:
15     "${p.name}"s,
16 % endfor
17 };
18 
19 const std::array<GroupOfProperties, ${len(propertygroups)}> groups = {{
20 % for g in propertygroups:
21     // ${g.name}
22     {
23         % for p in g.members:
24         ::Property{ interfaces[${p[0]}], properties[${p[1]}], meta[${p[2]}] },
25         % endfor
26     },
27 % endfor
28 }};
29 
30 const std::array<std::string, ${len(propertygroups)}> types = {
31 % for g in propertygroups:
32     "${g.datatype}"s,
33 % endfor
34 };
35