1e2bbc4eaSJohn Snowmodule ./builtin 28a84767cSMarkus Armbrusterobject q_empty 31e381b65SMarc-André Lureauenum QType 48a84767cSMarkus Armbruster prefix QTYPE 51e381b65SMarc-André Lureau member none 61e381b65SMarc-André Lureau member qnull 71e381b65SMarc-André Lureau member qnum 81e381b65SMarc-André Lureau member qstring 91e381b65SMarc-André Lureau member qdict 101e381b65SMarc-André Lureau member qlist 111e381b65SMarc-André Lureau member qbool 12cf40a0a5SMarkus Armbrustermodule qapi-schema-test.json 138a84767cSMarkus Armbrusterobject TestStruct 148a84767cSMarkus Armbruster member integer: int optional=False 158a84767cSMarkus Armbruster member boolean: bool optional=False 168a84767cSMarkus Armbruster member string: str optional=False 178a84767cSMarkus Armbrusterobject NestedEnumsOne 188a84767cSMarkus Armbruster member enum1: EnumOne optional=False 198a84767cSMarkus Armbruster member enum2: EnumOne optional=True 208a84767cSMarkus Armbruster member enum3: EnumOne optional=False 218a84767cSMarkus Armbruster member enum4: EnumOne optional=True 221e381b65SMarc-André Lureauenum MyEnum 238a84767cSMarkus Armbrusterobject Empty1 248a84767cSMarkus Armbrusterobject Empty2 258a84767cSMarkus Armbruster base Empty1 260ced9531SMarkus Armbrusterobject q_obj_Union-base 270ced9531SMarkus Armbruster member type: EnumOne optional=False 280ced9531SMarkus Armbrusterobject Union 290ced9531SMarkus Armbruster base q_obj_Union-base 300ced9531SMarkus Armbruster tag type 310ced9531SMarkus Armbruster case value1: q_empty 320ced9531SMarkus Armbruster case value2: q_empty 330ced9531SMarkus Armbruster case value3: q_empty 340ced9531SMarkus Armbruster case value4: q_empty 3505ebf841SMarkus Armbrustercommand user-def-cmd0 Empty2 -> Empty2 367b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 371e381b65SMarc-André Lureauenum QEnumTwo 388a84767cSMarkus Armbruster prefix QENUM_TWO 391e381b65SMarc-André Lureau member value1 401e381b65SMarc-André Lureau member value2 418a84767cSMarkus Armbrusterobject UserDefOne 428a84767cSMarkus Armbruster base UserDefZero 438a84767cSMarkus Armbruster member string: str optional=False 448a84767cSMarkus Armbruster member enum1: EnumOne optional=True 451e381b65SMarc-André Lureauenum EnumOne 461e381b65SMarc-André Lureau member value1 471e381b65SMarc-André Lureau member value2 481e381b65SMarc-André Lureau member value3 491e381b65SMarc-André Lureau member value4 508a84767cSMarkus Armbrusterobject UserDefZero 518a84767cSMarkus Armbruster member integer: int optional=False 528a84767cSMarkus Armbrusterobject UserDefTwoDictDict 538a84767cSMarkus Armbruster member userdef: UserDefOne optional=False 548a84767cSMarkus Armbruster member string: str optional=False 558a84767cSMarkus Armbrusterobject UserDefTwoDict 568a84767cSMarkus Armbruster member string1: str optional=False 578a84767cSMarkus Armbruster member dict2: UserDefTwoDictDict optional=False 588a84767cSMarkus Armbruster member dict3: UserDefTwoDictDict optional=True 598a84767cSMarkus Armbrusterobject UserDefTwo 608a84767cSMarkus Armbruster member string0: str optional=False 618a84767cSMarkus Armbruster member dict1: UserDefTwoDict optional=False 62967c8851SMarc-André Lureauobject UserDefThree 63967c8851SMarc-André Lureau member string0: str optional=False 64ca0ac758SMarkus Armbrusterarray UserDefOneList UserDefOne 65ca0ac758SMarkus Armbrusterarray UserDefTwoList UserDefTwo 66ca0ac758SMarkus Armbrusterarray TestStructList TestStruct 678a84767cSMarkus Armbrusterobject ForceArrays 688a84767cSMarkus Armbruster member unused1: UserDefOneList optional=False 698a84767cSMarkus Armbruster member unused2: UserDefTwoList optional=False 708a84767cSMarkus Armbruster member unused3: TestStructList optional=False 718a84767cSMarkus Armbrusterobject UserDefA 728a84767cSMarkus Armbruster member boolean: bool optional=False 738a84767cSMarkus Armbruster member a_b: int optional=True 748a84767cSMarkus Armbrusterobject UserDefB 758a84767cSMarkus Armbruster member intb: int optional=False 768a84767cSMarkus Armbruster member a-b: bool optional=True 778a84767cSMarkus Armbrusterobject UserDefFlatUnion 788a84767cSMarkus Armbruster base UserDefUnionBase 798a84767cSMarkus Armbruster tag enum1 808a84767cSMarkus Armbruster case value1: UserDefA 818a84767cSMarkus Armbruster case value2: UserDefB 828a84767cSMarkus Armbruster case value3: UserDefB 83800877bbSAnton Nefedov case value4: q_empty 848a84767cSMarkus Armbrusterobject UserDefUnionBase 858a84767cSMarkus Armbruster base UserDefZero 868a84767cSMarkus Armbruster member string: str optional=False 878a84767cSMarkus Armbruster member enum1: EnumOne optional=False 888a84767cSMarkus Armbrusterobject q_obj_UserDefFlatUnion2-base 898a84767cSMarkus Armbruster member integer: int optional=True 908a84767cSMarkus Armbruster member string: str optional=False 918a84767cSMarkus Armbruster member enum1: QEnumTwo optional=False 928a84767cSMarkus Armbrusterobject UserDefFlatUnion2 938a84767cSMarkus Armbruster base q_obj_UserDefFlatUnion2-base 948a84767cSMarkus Armbruster tag enum1 958a84767cSMarkus Armbruster case value1: UserDefC 968a84767cSMarkus Armbruster case value2: UserDefB 978a84767cSMarkus Armbrusterobject WrapAlternate 988a84767cSMarkus Armbruster member alt: UserDefAlternate optional=False 998a84767cSMarkus Armbrusteralternate UserDefAlternate 1008a84767cSMarkus Armbruster tag type 1018a84767cSMarkus Armbruster case udfu: UserDefFlatUnion 1028a84767cSMarkus Armbruster case e: EnumOne 1038a84767cSMarkus Armbruster case i: int 1048a84767cSMarkus Armbruster case n: null 1058a84767cSMarkus Armbrusterobject UserDefC 1068a84767cSMarkus Armbruster member string1: str optional=False 1078a84767cSMarkus Armbruster member string2: str optional=False 1088168ca8eSMarkus Armbrusteralternate AltEnumBool 1098168ca8eSMarkus Armbruster tag type 1108168ca8eSMarkus Armbruster case e: EnumOne 1118168ca8eSMarkus Armbruster case b: bool 1128168ca8eSMarkus Armbrusteralternate AltEnumNum 1138168ca8eSMarkus Armbruster tag type 1148168ca8eSMarkus Armbruster case e: EnumOne 1158168ca8eSMarkus Armbruster case n: number 1168168ca8eSMarkus Armbrusteralternate AltNumEnum 1178168ca8eSMarkus Armbruster tag type 1188168ca8eSMarkus Armbruster case n: number 1198168ca8eSMarkus Armbruster case e: EnumOne 1208a84767cSMarkus Armbrusteralternate AltEnumInt 1218a84767cSMarkus Armbruster tag type 1228a84767cSMarkus Armbruster case e: EnumOne 1238a84767cSMarkus Armbruster case i: int 124c0644771SMarkus Armbrusteralternate AltStrObj 125da9cb193SEric Blake tag type 1269c51b441SEric Blake case s: str 127c0644771SMarkus Armbruster case o: TestStruct 128dffd8ff9SMarkus Armbrusterobject ArrayStruct 129dffd8ff9SMarkus Armbruster member integer: intList optional=False 130dffd8ff9SMarkus Armbruster member s8: int8List optional=False 131dffd8ff9SMarkus Armbruster member s16: int16List optional=False 132dffd8ff9SMarkus Armbruster member s32: int32List optional=False 133dffd8ff9SMarkus Armbruster member s64: int64List optional=False 134dffd8ff9SMarkus Armbruster member u8: uint8List optional=False 135dffd8ff9SMarkus Armbruster member u16: uint16List optional=False 136dffd8ff9SMarkus Armbruster member u32: uint32List optional=False 137dffd8ff9SMarkus Armbruster member u64: uint64List optional=False 138dffd8ff9SMarkus Armbruster member number: numberList optional=False 139dffd8ff9SMarkus Armbruster member boolean: boolList optional=False 140dffd8ff9SMarkus Armbruster member string: strList optional=False 141dffd8ff9SMarkus Armbruster member sz: sizeList optional=True 142dffd8ff9SMarkus Armbruster member any: anyList optional=True 143dffd8ff9SMarkus Armbruster member user: StatusList optional=True 144709395f8SMarkus Armbrusterinclude include/sub-module.json 14505ebf841SMarkus Armbrustercommand user-def-cmd None -> None 1467b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 14705ebf841SMarkus Armbrusterobject q_obj_user-def-cmd1-arg 1488a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 14905ebf841SMarkus Armbrustercommand user-def-cmd1 q_obj_user-def-cmd1-arg -> None 1507b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 15105ebf841SMarkus Armbrusterobject q_obj_user-def-cmd2-arg 1528a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 1538a84767cSMarkus Armbruster member ud1b: UserDefOne optional=True 15405ebf841SMarkus Armbrustercommand user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo 1557b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 156ae6bf766SMarc-André Lureaucommand cmd-success-response None -> None 157ae6bf766SMarc-André Lureau gen=True success_response=False boxed=False oob=False preconfig=False 15804f22362SKevin Wolfcommand coroutine-cmd None -> None 15904f22362SKevin Wolf gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True 1608a84767cSMarkus Armbrusterobject q_obj_guest-get-time-arg 1618a84767cSMarkus Armbruster member a: int optional=False 1628a84767cSMarkus Armbruster member b: int optional=True 1638a84767cSMarkus Armbrustercommand guest-get-time q_obj_guest-get-time-arg -> int 1647b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 1658a84767cSMarkus Armbrusterobject q_obj_guest-sync-arg 1668a84767cSMarkus Armbruster member arg: any optional=False 1678a84767cSMarkus Armbrustercommand guest-sync q_obj_guest-sync-arg -> any 1687b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 1698a84767cSMarkus Armbrustercommand boxed-struct UserDefZero -> None 1707b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 1711e65e16cSMarkus Armbrustercommand boxed-union UserDefFlatUnion -> None 1727b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 173675b214bSMarkus Armbrustercommand boxed-empty Empty1 -> None 174675b214bSMarkus Armbruster gen=True success_response=True boxed=True oob=False preconfig=False 1757b13f2c2SIgor Mammedovcommand test-flags-command None -> None 1767b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=True preconfig=True 177156402e5SMarkus Armbrusterobject UserDefOptions 178156402e5SMarkus Armbruster member i64: intList optional=True 179156402e5SMarkus Armbruster member u64: uint64List optional=True 180156402e5SMarkus Armbruster member u16: uint16List optional=True 181156402e5SMarkus Armbruster member i64x: int optional=True 182156402e5SMarkus Armbruster member u64x: uint64 optional=True 1838a84767cSMarkus Armbrusterobject EventStructOne 1848a84767cSMarkus Armbruster member struct1: UserDefOne optional=False 185156402e5SMarkus Armbruster member string: str optional=False 1868a84767cSMarkus Armbruster member enum2: EnumOne optional=True 1878a84767cSMarkus Armbrusterevent EVENT_A None 18848825ca4SEric Blake boxed=False 1898a84767cSMarkus Armbrusterevent EVENT_B None 1908a84767cSMarkus Armbruster boxed=False 1917599697cSEric Blakeobject q_obj_EVENT_C-arg 1927599697cSEric Blake member a: int optional=True 1937599697cSEric Blake member b: UserDefOne optional=True 1947599697cSEric Blake member c: str optional=False 1958a84767cSMarkus Armbrusterevent EVENT_C q_obj_EVENT_C-arg 1968a84767cSMarkus Armbruster boxed=False 1977599697cSEric Blakeobject q_obj_EVENT_D-arg 1987599697cSEric Blake member a: EventStructOne optional=False 1997599697cSEric Blake member b: str optional=False 2007599697cSEric Blake member c: str optional=True 2017599697cSEric Blake member enum3: EnumOne optional=True 2028a84767cSMarkus Armbrusterevent EVENT_D q_obj_EVENT_D-arg 2038a84767cSMarkus Armbruster boxed=False 2048a84767cSMarkus Armbrusterevent EVENT_E UserDefZero 2058a84767cSMarkus Armbruster boxed=True 206b22e8658SMarkus Armbrusterevent EVENT_F UserDefFlatUnion 2078a84767cSMarkus Armbruster boxed=True 208675b214bSMarkus Armbrusterevent EVENT_G Empty1 209675b214bSMarkus Armbruster boxed=True 2101e381b65SMarc-André Lureauenum __org.qemu_x-Enum 2111e381b65SMarc-André Lureau member __org.qemu_x-value 2128a84767cSMarkus Armbrusterobject __org.qemu_x-Base 2138a84767cSMarkus Armbruster member __org.qemu_x-member1: __org.qemu_x-Enum optional=False 2148a84767cSMarkus Armbrusterobject __org.qemu_x-Struct 2158a84767cSMarkus Armbruster base __org.qemu_x-Base 2168a84767cSMarkus Armbruster member __org.qemu_x-member2: str optional=False 2178a84767cSMarkus Armbruster member wchar-t: int optional=True 218f0325536SMarkus Armbrusteralternate __org.qemu_x-Alt1 219f0325536SMarkus Armbruster tag type 220f0325536SMarkus Armbruster case __org.qemu_x-branch: str 221bb5821ddSMarkus Armbrusterarray __org.qemu_x-UnionList __org.qemu_x-Union 2228a84767cSMarkus Armbrusterobject __org.qemu_x-Struct2 223bb5821ddSMarkus Armbruster member array: __org.qemu_x-UnionList optional=False 224bb5821ddSMarkus Armbrusterobject __org.qemu_x-Union 2258a84767cSMarkus Armbruster base __org.qemu_x-Base 2268a84767cSMarkus Armbruster tag __org.qemu_x-member1 2278a84767cSMarkus Armbruster case __org.qemu_x-value: __org.qemu_x-Struct2 2288a84767cSMarkus Armbrusteralternate __org.qemu_x-Alt 2298a84767cSMarkus Armbruster tag type 230f0325536SMarkus Armbruster case __org.qemu_x-branch: __org.qemu_x-Base 2318a84767cSMarkus Armbrusterevent __ORG.QEMU_X-EVENT __org.qemu_x-Struct 2328a84767cSMarkus Armbruster boxed=False 233ca0ac758SMarkus Armbrusterarray __org.qemu_x-EnumList __org.qemu_x-Enum 234ca0ac758SMarkus Armbrusterarray __org.qemu_x-StructList __org.qemu_x-Struct 2357599697cSEric Blakeobject q_obj___org.qemu_x-command-arg 2367599697cSEric Blake member a: __org.qemu_x-EnumList optional=False 2377599697cSEric Blake member b: __org.qemu_x-StructList optional=False 238bb5821ddSMarkus Armbruster member c: __org.qemu_x-Union optional=False 2397599697cSEric Blake member d: __org.qemu_x-Alt optional=False 240bb5821ddSMarkus Armbrustercommand __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None 2417b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 242967c8851SMarc-André Lureauobject TestIfStruct 243967c8851SMarc-André Lureau member foo: int optional=False 244ccadd6bcSMarc-André Lureau member bar: int optional=False 2458a9f1e1dSMarc-André Lureau if TEST_IF_STRUCT_BAR 2468a9f1e1dSMarc-André Lureau if TEST_IF_STRUCT 2471e381b65SMarc-André Lureauenum TestIfEnum 2481e381b65SMarc-André Lureau member foo 2491e381b65SMarc-André Lureau member bar 2508a9f1e1dSMarc-André Lureau if TEST_IF_ENUM_BAR 2518a9f1e1dSMarc-André Lureau if TEST_IF_ENUM 25254501863SMarkus Armbrusterobject q_obj_TestIfUnion-base 25354501863SMarkus Armbruster member type: TestIfEnum optional=False 2549c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 255967c8851SMarc-André Lureauobject TestIfUnion 25654501863SMarkus Armbruster base q_obj_TestIfUnion-base 257967c8851SMarc-André Lureau tag type 25854501863SMarkus Armbruster case foo: TestStruct 25954501863SMarkus Armbruster case bar: UserDefZero 26054501863SMarkus Armbruster if TEST_IF_ENUM_BAR 2619c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 26205ebf841SMarkus Armbrusterobject q_obj_test-if-union-cmd-arg 2635aceeac0SMarkus Armbruster member union-cmd-arg: TestIfUnion optional=False 2649c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 26505ebf841SMarkus Armbrustercommand test-if-union-cmd q_obj_test-if-union-cmd-arg -> None 266f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2679c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 268967c8851SMarc-André Lureaualternate TestIfAlternate 269967c8851SMarc-André Lureau tag type 270967c8851SMarc-André Lureau case foo: int 271967c8851SMarc-André Lureau case bar: TestStruct 2728a9f1e1dSMarc-André Lureau if TEST_IF_ALT_BAR 2739c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 27405ebf841SMarkus Armbrusterobject q_obj_test-if-alternate-cmd-arg 2755aceeac0SMarkus Armbruster member alt-cmd-arg: TestIfAlternate optional=False 2769c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 27705ebf841SMarkus Armbrustercommand test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None 278f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2799c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 28005ebf841SMarkus Armbrusterobject q_obj_test-if-cmd-arg 281967c8851SMarc-André Lureau member foo: TestIfStruct optional=False 2826cc32b0eSMarc-André Lureau member bar: TestIfEnum optional=False 2838a9f1e1dSMarc-André Lureau if TEST_IF_CMD_BAR 2849c629fa8SMarkus Armbruster if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']} 28505ebf841SMarkus Armbrustercommand test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree 286967c8851SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2879c629fa8SMarkus Armbruster if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']} 28805ebf841SMarkus Armbrustercommand test-cmd-return-def-three None -> UserDefThree 289967c8851SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2900f20628bSMarkus Armbrusterarray TestIfEnumList TestIfEnum 2918a9f1e1dSMarc-André Lureau if TEST_IF_ENUM 292d4f4cae8SMarkus Armbrusterobject q_obj_TEST_IF_EVENT-arg 293967c8851SMarc-André Lureau member foo: TestIfStruct optional=False 2940f20628bSMarkus Armbruster member bar: TestIfEnumList optional=False 2958a9f1e1dSMarc-André Lureau if TEST_IF_EVT_BAR 2969c629fa8SMarkus Armbruster if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']} 297d4f4cae8SMarkus Armbrusterevent TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg 298967c8851SMarc-André Lureau boxed=False 2999c629fa8SMarkus Armbruster if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']} 300dd044023SMarkus Armbrusterevent TEST_IF_EVENT2 None 301dd044023SMarkus Armbruster boxed=False 3029c629fa8SMarkus Armbruster if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}} 3038aa3a33eSKevin Wolfobject FeatureStruct0 3048aa3a33eSKevin Wolf member foo: int optional=False 3058aa3a33eSKevin Wolfobject FeatureStruct1 3068aa3a33eSKevin Wolf member foo: int optional=False 307f965e8feSMarkus Armbruster feature deprecated 3088aa3a33eSKevin Wolf feature feature1 3098aa3a33eSKevin Wolfobject FeatureStruct2 3108aa3a33eSKevin Wolf member foo: int optional=False 311*a3c45b3eSMarkus Armbruster feature unstable 3128aa3a33eSKevin Wolf feature feature1 3138aa3a33eSKevin Wolfobject FeatureStruct3 3148aa3a33eSKevin Wolf member foo: int optional=False 3158aa3a33eSKevin Wolf feature feature1 3168aa3a33eSKevin Wolf feature feature2 3178aa3a33eSKevin Wolfobject FeatureStruct4 3188aa3a33eSKevin Wolf member namespace-test: int optional=False 3198aa3a33eSKevin Wolf feature namespace-test 3208aa3a33eSKevin Wolf feature int 3218aa3a33eSKevin Wolf feature name 3228aa3a33eSKevin Wolf feature if 3238aa3a33eSKevin Wolfobject CondFeatureStruct1 3248aa3a33eSKevin Wolf member foo: int optional=False 3258aa3a33eSKevin Wolf feature feature1 3268a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3278aa3a33eSKevin Wolfobject CondFeatureStruct2 3288aa3a33eSKevin Wolf member foo: int optional=False 3298aa3a33eSKevin Wolf feature feature1 3308a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3318aa3a33eSKevin Wolf feature feature2 3328a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 3338aa3a33eSKevin Wolfobject CondFeatureStruct3 3348aa3a33eSKevin Wolf member foo: int optional=False 3358aa3a33eSKevin Wolf feature feature1 3369c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 3373ad64edfSMarc-André Lureauobject CondFeatureStruct4 3383ad64edfSMarc-André Lureau member foo: int optional=False 3393ad64edfSMarc-André Lureau feature feature1 3409c629fa8SMarkus Armbruster if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 341013b4efcSMarkus Armbrusterenum FeatureEnum1 342013b4efcSMarkus Armbruster member eins 343013b4efcSMarkus Armbruster member zwei 344013b4efcSMarkus Armbruster member drei 345b6c18755SMarkus Armbruster feature deprecated 346013b4efcSMarkus Armbruster feature feature1 347013b4efcSMarkus Armbrusterobject q_obj_FeatureUnion1-base 348013b4efcSMarkus Armbruster member tag: FeatureEnum1 optional=False 349013b4efcSMarkus Armbrusterobject FeatureUnion1 350013b4efcSMarkus Armbruster base q_obj_FeatureUnion1-base 351013b4efcSMarkus Armbruster tag tag 352013b4efcSMarkus Armbruster case eins: FeatureStruct1 353013b4efcSMarkus Armbruster case zwei: q_empty 354013b4efcSMarkus Armbruster case drei: q_empty 355013b4efcSMarkus Armbruster feature feature1 356013b4efcSMarkus Armbrusteralternate FeatureAlternate1 357013b4efcSMarkus Armbruster tag type 358013b4efcSMarkus Armbruster case eins: FeatureStruct1 359013b4efcSMarkus Armbruster feature feature1 360013b4efcSMarkus Armbrusterobject q_obj_test-features0-arg 36191fa93e5SMarkus Armbruster member fs0: FeatureStruct0 optional=True 36291fa93e5SMarkus Armbruster member fs1: FeatureStruct1 optional=True 36391fa93e5SMarkus Armbruster member fs2: FeatureStruct2 optional=True 36491fa93e5SMarkus Armbruster member fs3: FeatureStruct3 optional=True 36591fa93e5SMarkus Armbruster member fs4: FeatureStruct4 optional=True 36691fa93e5SMarkus Armbruster member cfs1: CondFeatureStruct1 optional=True 36791fa93e5SMarkus Armbruster member cfs2: CondFeatureStruct2 optional=True 36891fa93e5SMarkus Armbruster member cfs3: CondFeatureStruct3 optional=True 3693ad64edfSMarc-André Lureau member cfs4: CondFeatureStruct4 optional=True 37091fa93e5SMarkus Armbrustercommand test-features0 q_obj_test-features0-arg -> FeatureStruct1 3712e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3722e2e0df2SPeter Krempacommand test-command-features1 None -> None 3732e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 374f965e8feSMarkus Armbruster feature deprecated 3752e2e0df2SPeter Krempacommand test-command-features3 None -> None 3762e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 377*a3c45b3eSMarkus Armbruster feature unstable 3782e2e0df2SPeter Krempa feature feature1 3792e2e0df2SPeter Krempa feature feature2 3802e2e0df2SPeter Krempacommand test-command-cond-features1 None -> None 3812e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3822e2e0df2SPeter Krempa feature feature1 3838a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3842e2e0df2SPeter Krempacommand test-command-cond-features2 None -> None 3852e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3862e2e0df2SPeter Krempa feature feature1 3878a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3882e2e0df2SPeter Krempa feature feature2 3898a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 3902e2e0df2SPeter Krempacommand test-command-cond-features3 None -> None 3912e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3922e2e0df2SPeter Krempa feature feature1 3939c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 394d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES0 FeatureStruct1 395a291a38fSMarkus Armbruster boxed=False 396d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES1 None 397013b4efcSMarkus Armbruster boxed=False 398f965e8feSMarkus Armbruster feature deprecated 399*a3c45b3eSMarkus Armbrusterevent TEST_EVENT_FEATURES2 None 400*a3c45b3eSMarkus Armbruster boxed=False 401*a3c45b3eSMarkus Armbruster feature unstable 4023e7fb581SMarkus Armbrustermodule include/sub-module.json 4033e7fb581SMarkus Armbrusterinclude sub-sub-module.json 4043e7fb581SMarkus Armbrusterobject SecondArrayRef 4053e7fb581SMarkus Armbruster member s: StatusList optional=False 4063e7fb581SMarkus Armbrustermodule sub-sub-module.json 4073e7fb581SMarkus Armbrusterarray StatusList Status 4083e7fb581SMarkus Armbrusterenum Status 4093e7fb581SMarkus Armbruster member good 4103e7fb581SMarkus Armbruster member bad 4113e7fb581SMarkus Armbruster member ugly 412