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 12479db9948SPaolo Bonzinialternate AltListInt 12579db9948SPaolo Bonzini tag type 12679db9948SPaolo Bonzini case l: intList 12779db9948SPaolo Bonzini case i: int 128c0644771SMarkus Armbrusteralternate AltStrObj 129da9cb193SEric Blake tag type 1309c51b441SEric Blake case s: str 131c0644771SMarkus Armbruster case o: TestStruct 132dffd8ff9SMarkus Armbrusterobject ArrayStruct 133dffd8ff9SMarkus Armbruster member integer: intList optional=False 134dffd8ff9SMarkus Armbruster member s8: int8List optional=False 135dffd8ff9SMarkus Armbruster member s16: int16List optional=False 136dffd8ff9SMarkus Armbruster member s32: int32List optional=False 137dffd8ff9SMarkus Armbruster member s64: int64List optional=False 138dffd8ff9SMarkus Armbruster member u8: uint8List optional=False 139dffd8ff9SMarkus Armbruster member u16: uint16List optional=False 140dffd8ff9SMarkus Armbruster member u32: uint32List optional=False 141dffd8ff9SMarkus Armbruster member u64: uint64List optional=False 142dffd8ff9SMarkus Armbruster member number: numberList optional=False 143dffd8ff9SMarkus Armbruster member boolean: boolList optional=False 144dffd8ff9SMarkus Armbruster member string: strList optional=False 145dffd8ff9SMarkus Armbruster member sz: sizeList optional=True 146dffd8ff9SMarkus Armbruster member any: anyList optional=True 147dffd8ff9SMarkus Armbruster member user: StatusList optional=True 148709395f8SMarkus Armbrusterinclude include/sub-module.json 14905ebf841SMarkus Armbrustercommand user-def-cmd None -> None 1507b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 15105ebf841SMarkus Armbrusterobject q_obj_user-def-cmd1-arg 1528a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 15305ebf841SMarkus Armbrustercommand user-def-cmd1 q_obj_user-def-cmd1-arg -> None 1547b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 15505ebf841SMarkus Armbrusterobject q_obj_user-def-cmd2-arg 1568a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 1578a84767cSMarkus Armbruster member ud1b: UserDefOne optional=True 15805ebf841SMarkus Armbrustercommand user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo 1597b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 160ae6bf766SMarc-André Lureaucommand cmd-success-response None -> None 161ae6bf766SMarc-André Lureau gen=True success_response=False boxed=False oob=False preconfig=False 16204f22362SKevin Wolfcommand coroutine-cmd None -> None 16304f22362SKevin Wolf gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True 1648a84767cSMarkus Armbrusterobject q_obj_guest-get-time-arg 1658a84767cSMarkus Armbruster member a: int optional=False 1668a84767cSMarkus Armbruster member b: int optional=True 1678a84767cSMarkus Armbrustercommand guest-get-time q_obj_guest-get-time-arg -> int 1687b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 1698a84767cSMarkus Armbrusterobject q_obj_guest-sync-arg 1708a84767cSMarkus Armbruster member arg: any optional=False 1718a84767cSMarkus Armbrustercommand guest-sync q_obj_guest-sync-arg -> any 1727b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 1738a84767cSMarkus Armbrustercommand boxed-struct UserDefZero -> None 1747b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 1751e65e16cSMarkus Armbrustercommand boxed-union UserDefFlatUnion -> None 1767b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 177675b214bSMarkus Armbrustercommand boxed-empty Empty1 -> None 178675b214bSMarkus Armbruster gen=True success_response=True boxed=True oob=False preconfig=False 1797b13f2c2SIgor Mammedovcommand test-flags-command None -> None 1807b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=True preconfig=True 181156402e5SMarkus Armbrusterobject UserDefOptions 182156402e5SMarkus Armbruster member i64: intList optional=True 183156402e5SMarkus Armbruster member u64: uint64List optional=True 184156402e5SMarkus Armbruster member u16: uint16List optional=True 185156402e5SMarkus Armbruster member i64x: int optional=True 186156402e5SMarkus Armbruster member u64x: uint64 optional=True 1878a84767cSMarkus Armbrusterobject EventStructOne 1888a84767cSMarkus Armbruster member struct1: UserDefOne optional=False 189156402e5SMarkus Armbruster member string: str optional=False 1908a84767cSMarkus Armbruster member enum2: EnumOne optional=True 1918a84767cSMarkus Armbrusterevent EVENT_A None 19248825ca4SEric Blake boxed=False 1938a84767cSMarkus Armbrusterevent EVENT_B None 1948a84767cSMarkus Armbruster boxed=False 1957599697cSEric Blakeobject q_obj_EVENT_C-arg 1967599697cSEric Blake member a: int optional=True 1977599697cSEric Blake member b: UserDefOne optional=True 1987599697cSEric Blake member c: str optional=False 1998a84767cSMarkus Armbrusterevent EVENT_C q_obj_EVENT_C-arg 2008a84767cSMarkus Armbruster boxed=False 2017599697cSEric Blakeobject q_obj_EVENT_D-arg 2027599697cSEric Blake member a: EventStructOne optional=False 2037599697cSEric Blake member b: str optional=False 2047599697cSEric Blake member c: str optional=True 2057599697cSEric Blake member enum3: EnumOne optional=True 2068a84767cSMarkus Armbrusterevent EVENT_D q_obj_EVENT_D-arg 2078a84767cSMarkus Armbruster boxed=False 2088a84767cSMarkus Armbrusterevent EVENT_E UserDefZero 2098a84767cSMarkus Armbruster boxed=True 210b22e8658SMarkus Armbrusterevent EVENT_F UserDefFlatUnion 2118a84767cSMarkus Armbruster boxed=True 212675b214bSMarkus Armbrusterevent EVENT_G Empty1 213675b214bSMarkus Armbruster boxed=True 2141e381b65SMarc-André Lureauenum __org.qemu_x-Enum 2151e381b65SMarc-André Lureau member __org.qemu_x-value 2168a84767cSMarkus Armbrusterobject __org.qemu_x-Base 2178a84767cSMarkus Armbruster member __org.qemu_x-member1: __org.qemu_x-Enum optional=False 2188a84767cSMarkus Armbrusterobject __org.qemu_x-Struct 2198a84767cSMarkus Armbruster base __org.qemu_x-Base 2208a84767cSMarkus Armbruster member __org.qemu_x-member2: str optional=False 2218a84767cSMarkus Armbruster member wchar-t: int optional=True 222f0325536SMarkus Armbrusteralternate __org.qemu_x-Alt1 223f0325536SMarkus Armbruster tag type 224f0325536SMarkus Armbruster case __org.qemu_x-branch: str 225bb5821ddSMarkus Armbrusterarray __org.qemu_x-UnionList __org.qemu_x-Union 2268a84767cSMarkus Armbrusterobject __org.qemu_x-Struct2 227bb5821ddSMarkus Armbruster member array: __org.qemu_x-UnionList optional=False 228bb5821ddSMarkus Armbrusterobject __org.qemu_x-Union 2298a84767cSMarkus Armbruster base __org.qemu_x-Base 2308a84767cSMarkus Armbruster tag __org.qemu_x-member1 2318a84767cSMarkus Armbruster case __org.qemu_x-value: __org.qemu_x-Struct2 2328a84767cSMarkus Armbrusteralternate __org.qemu_x-Alt 2338a84767cSMarkus Armbruster tag type 234f0325536SMarkus Armbruster case __org.qemu_x-branch: __org.qemu_x-Base 2358a84767cSMarkus Armbrusterevent __ORG.QEMU_X-EVENT __org.qemu_x-Struct 2368a84767cSMarkus Armbruster boxed=False 237ca0ac758SMarkus Armbrusterarray __org.qemu_x-EnumList __org.qemu_x-Enum 238ca0ac758SMarkus Armbrusterarray __org.qemu_x-StructList __org.qemu_x-Struct 2397599697cSEric Blakeobject q_obj___org.qemu_x-command-arg 2407599697cSEric Blake member a: __org.qemu_x-EnumList optional=False 2417599697cSEric Blake member b: __org.qemu_x-StructList optional=False 242bb5821ddSMarkus Armbruster member c: __org.qemu_x-Union optional=False 2437599697cSEric Blake member d: __org.qemu_x-Alt optional=False 244bb5821ddSMarkus Armbrustercommand __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None 2457b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 246967c8851SMarc-André Lureauobject TestIfStruct 247967c8851SMarc-André Lureau member foo: int optional=False 248ccadd6bcSMarc-André Lureau member bar: int optional=False 24940e350f0SMarkus Armbruster if TEST_IF_STRUCT_MEMBER 250*fa32eb90SMarkus Armbruster member baz: str optional=True 251*fa32eb90SMarkus Armbruster if TEST_IF_STRUCT_MEMBER 2528a9f1e1dSMarc-André Lureau if TEST_IF_STRUCT 2531e381b65SMarc-André Lureauenum TestIfEnum 2541e381b65SMarc-André Lureau member foo 2551e381b65SMarc-André Lureau member bar 25640e350f0SMarkus Armbruster if TEST_IF_ENUM_MEMBER 25739d2cc8eSMarkus Armbruster if TEST_IF_UNION 25854501863SMarkus Armbrusterobject q_obj_TestIfUnion-base 25954501863SMarkus Armbruster member type: TestIfEnum optional=False 2609c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 261967c8851SMarc-André Lureauobject TestIfUnion 26254501863SMarkus Armbruster base q_obj_TestIfUnion-base 263967c8851SMarc-André Lureau tag type 26454501863SMarkus Armbruster case foo: TestStruct 26554501863SMarkus Armbruster case bar: UserDefZero 26640e350f0SMarkus Armbruster if TEST_IF_ENUM_MEMBER 2679c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 26805ebf841SMarkus Armbrusterobject q_obj_test-if-union-cmd-arg 2695aceeac0SMarkus Armbruster member union-cmd-arg: TestIfUnion optional=False 2709c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 27105ebf841SMarkus Armbrustercommand test-if-union-cmd q_obj_test-if-union-cmd-arg -> None 272f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2739c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 274967c8851SMarc-André Lureaualternate TestIfAlternate 275967c8851SMarc-André Lureau tag type 276967c8851SMarc-André Lureau case foo: int 277967c8851SMarc-André Lureau case bar: TestStruct 27840e350f0SMarkus Armbruster if TEST_IF_ALT_MEMBER 2799c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 28005ebf841SMarkus Armbrusterobject q_obj_test-if-alternate-cmd-arg 2815aceeac0SMarkus Armbruster member alt-cmd-arg: TestIfAlternate optional=False 2829c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 28305ebf841SMarkus Armbrustercommand test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None 284f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2859c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 28605ebf841SMarkus Armbrusterobject q_obj_test-if-cmd-arg 287967c8851SMarc-André Lureau member foo: TestIfStruct optional=False 28839d2cc8eSMarkus Armbruster member bar: str optional=False 28940e350f0SMarkus Armbruster if TEST_IF_CMD_ARG 2909c629fa8SMarkus Armbruster if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']} 29105ebf841SMarkus Armbrustercommand test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree 292967c8851SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 2939c629fa8SMarkus Armbruster if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']} 29405ebf841SMarkus Armbrustercommand test-cmd-return-def-three None -> UserDefThree 295967c8851SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 296d4f4cae8SMarkus Armbrusterobject q_obj_TEST_IF_EVENT-arg 297967c8851SMarc-André Lureau member foo: TestIfStruct optional=False 29839d2cc8eSMarkus Armbruster member bar: strList optional=False 29940e350f0SMarkus Armbruster if TEST_IF_EVT_ARG 3009c629fa8SMarkus Armbruster if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']} 301d4f4cae8SMarkus Armbrusterevent TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg 302967c8851SMarc-André Lureau boxed=False 3039c629fa8SMarkus Armbruster if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']} 304dd044023SMarkus Armbrusterevent TEST_IF_EVENT2 None 305dd044023SMarkus Armbruster boxed=False 3069c629fa8SMarkus Armbruster if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}} 3078aa3a33eSKevin Wolfobject FeatureStruct0 3088aa3a33eSKevin Wolf member foo: int optional=False 3098aa3a33eSKevin Wolfobject FeatureStruct1 3108aa3a33eSKevin Wolf member foo: int optional=False 311f965e8feSMarkus Armbruster feature deprecated 3128aa3a33eSKevin Wolf feature feature1 3138aa3a33eSKevin Wolfobject FeatureStruct2 3148aa3a33eSKevin Wolf member foo: int optional=False 315a3c45b3eSMarkus Armbruster feature unstable 3168aa3a33eSKevin Wolf feature feature1 3178aa3a33eSKevin Wolfobject FeatureStruct3 3188aa3a33eSKevin Wolf member foo: int optional=False 3198aa3a33eSKevin Wolf feature feature1 3208aa3a33eSKevin Wolf feature feature2 3218aa3a33eSKevin Wolfobject FeatureStruct4 3228aa3a33eSKevin Wolf member namespace-test: int optional=False 3238aa3a33eSKevin Wolf feature namespace-test 3248aa3a33eSKevin Wolf feature int 3258aa3a33eSKevin Wolf feature name 3268aa3a33eSKevin Wolf feature if 3278aa3a33eSKevin Wolfobject CondFeatureStruct1 3288aa3a33eSKevin Wolf member foo: int optional=False 3298aa3a33eSKevin Wolf feature feature1 3308a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3318aa3a33eSKevin Wolfobject CondFeatureStruct2 3328aa3a33eSKevin Wolf member foo: int optional=False 3338aa3a33eSKevin Wolf feature feature1 3348a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3358aa3a33eSKevin Wolf feature feature2 3368a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 3378aa3a33eSKevin Wolfobject CondFeatureStruct3 3388aa3a33eSKevin Wolf member foo: int optional=False 3398aa3a33eSKevin Wolf feature feature1 3409c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 3413ad64edfSMarc-André Lureauobject CondFeatureStruct4 3423ad64edfSMarc-André Lureau member foo: int optional=False 3433ad64edfSMarc-André Lureau feature feature1 3449c629fa8SMarkus Armbruster if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 345013b4efcSMarkus Armbrusterenum FeatureEnum1 346013b4efcSMarkus Armbruster member eins 347013b4efcSMarkus Armbruster member zwei 348013b4efcSMarkus Armbruster member drei 349b6c18755SMarkus Armbruster feature deprecated 350013b4efcSMarkus Armbruster feature feature1 351013b4efcSMarkus Armbrusterobject q_obj_FeatureUnion1-base 352013b4efcSMarkus Armbruster member tag: FeatureEnum1 optional=False 353013b4efcSMarkus Armbrusterobject FeatureUnion1 354013b4efcSMarkus Armbruster base q_obj_FeatureUnion1-base 355013b4efcSMarkus Armbruster tag tag 356013b4efcSMarkus Armbruster case eins: FeatureStruct1 357013b4efcSMarkus Armbruster case zwei: q_empty 358013b4efcSMarkus Armbruster case drei: q_empty 359013b4efcSMarkus Armbruster feature feature1 360013b4efcSMarkus Armbrusteralternate FeatureAlternate1 361013b4efcSMarkus Armbruster tag type 362013b4efcSMarkus Armbruster case eins: FeatureStruct1 363013b4efcSMarkus Armbruster feature feature1 364013b4efcSMarkus Armbrusterobject q_obj_test-features0-arg 36591fa93e5SMarkus Armbruster member fs0: FeatureStruct0 optional=True 36691fa93e5SMarkus Armbruster member fs1: FeatureStruct1 optional=True 36791fa93e5SMarkus Armbruster member fs2: FeatureStruct2 optional=True 36891fa93e5SMarkus Armbruster member fs3: FeatureStruct3 optional=True 36991fa93e5SMarkus Armbruster member fs4: FeatureStruct4 optional=True 37091fa93e5SMarkus Armbruster member cfs1: CondFeatureStruct1 optional=True 37191fa93e5SMarkus Armbruster member cfs2: CondFeatureStruct2 optional=True 37291fa93e5SMarkus Armbruster member cfs3: CondFeatureStruct3 optional=True 3733ad64edfSMarc-André Lureau member cfs4: CondFeatureStruct4 optional=True 37491fa93e5SMarkus Armbrustercommand test-features0 q_obj_test-features0-arg -> FeatureStruct1 3752e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3762e2e0df2SPeter Krempacommand test-command-features1 None -> None 3772e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 378f965e8feSMarkus Armbruster feature deprecated 3792e2e0df2SPeter Krempacommand test-command-features3 None -> None 3802e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 381a3c45b3eSMarkus Armbruster feature unstable 3822e2e0df2SPeter Krempa feature feature1 3832e2e0df2SPeter Krempa feature feature2 3842e2e0df2SPeter Krempacommand test-command-cond-features1 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 Krempacommand test-command-cond-features2 None -> None 3892e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3902e2e0df2SPeter Krempa feature feature1 3918a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3922e2e0df2SPeter Krempa feature feature2 3938a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 3942e2e0df2SPeter Krempacommand test-command-cond-features3 None -> None 3952e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3962e2e0df2SPeter Krempa feature feature1 3979c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 398d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES0 FeatureStruct1 399a291a38fSMarkus Armbruster boxed=False 400d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES1 None 401013b4efcSMarkus Armbruster boxed=False 402f965e8feSMarkus Armbruster feature deprecated 403a3c45b3eSMarkus Armbrusterevent TEST_EVENT_FEATURES2 None 404a3c45b3eSMarkus Armbruster boxed=False 405a3c45b3eSMarkus Armbruster feature unstable 4063e7fb581SMarkus Armbrustermodule include/sub-module.json 4073e7fb581SMarkus Armbrusterinclude sub-sub-module.json 4083e7fb581SMarkus Armbrusterobject SecondArrayRef 4093e7fb581SMarkus Armbruster member s: StatusList optional=False 4103e7fb581SMarkus Armbrustermodule sub-sub-module.json 4113e7fb581SMarkus Armbrusterarray StatusList Status 4123e7fb581SMarkus Armbrusterenum Status 4133e7fb581SMarkus Armbruster member good 4143e7fb581SMarkus Armbruster member bad 4153e7fb581SMarkus Armbruster member ugly 416