#include using namespace athena; typedef io::DNA BigDNA; enum ETest : atUint8 { ZERO, ONE, TWO, THREE }; template struct AT_SPECIALIZE_PARMS(ETest::ZERO, ETest::ONE, ETest::TWO, ETest::THREE) TESTSubFile : public BigDNA { AT_DECL_DNA Value varE = EVal; Value sub1; Value sub2; }; struct TESTSubClassFile : public TESTSubFile { AT_DECL_DNA Value sub3; Value sub4; }; struct TESTSubSubClassFile : public TESTSubClassFile { AT_DECL_DNA Value sub5; Value sub6; }; template struct AT_SPECIALIZE_PARMS(atUint16, 42, atUint32, 87, atUint32, 2) TESTFile : public BigDNA { AT_DECL_DNA Value varBool; AT_OVERRIDE_RCRC32(12345678) Value x4_var32 = Var32Val; AT_OVERRIDE_RCRC32(deadbabe) Value x8_var16; Value vec3; Value vec4; struct TESTNestedSubFile : public BigDNA { AT_DECL_DNA Value nestSub1; Value nestSub2; } nestedSubFile; using TESTSubFileUsing = TESTSubFile; TESTSubFileUsing subFile; Align<4> align; template struct AT_SPECIALIZE_PARMS(atInt32, 36, atInt64, 96) TESTTemplateSubFile : public BigDNA { AT_DECL_DNA Value explSub1 = NestedVal; Value explSub2 = Var32Val; }; Value> nestedTemplate1; Value> nestedTemplate2; Value arrCount[2]; Vector array; Value arrAltCount; Vector arrayAlt; Seek<21, Current> seek; Value arrCount2; Vector, AT_DNA_COUNT(arrCount[1] + arrCount2)> array2; Value bufSz; Buffer buf; String<32> str; WString<64> wstr; };