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 108*a17dbc4bSDaniel P. Berrangéenum TestUnionEnum 109*a17dbc4bSDaniel P. Berrangé member value-a 110*a17dbc4bSDaniel P. Berrangé member value-b 111*a17dbc4bSDaniel P. Berrangéenum TestUnionEnumA 112*a17dbc4bSDaniel P. Berrangé member value-a1 113*a17dbc4bSDaniel P. Berrangé member value-a2 114*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeA1 115*a17dbc4bSDaniel P. Berrangé member integer: int optional=False 116*a17dbc4bSDaniel P. Berrangé member name: str optional=False 117*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeA2 118*a17dbc4bSDaniel P. Berrangé member integer: int optional=False 119*a17dbc4bSDaniel P. Berrangé member size: int optional=False 120*a17dbc4bSDaniel P. Berrangéobject q_obj_TestUnionTypeA-base 121*a17dbc4bSDaniel P. Berrangé member type-a: TestUnionEnumA optional=False 122*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeA 123*a17dbc4bSDaniel P. Berrangé base q_obj_TestUnionTypeA-base 124*a17dbc4bSDaniel P. Berrangé tag type-a 125*a17dbc4bSDaniel P. Berrangé case value-a1: TestUnionTypeA1 126*a17dbc4bSDaniel P. Berrangé case value-a2: TestUnionTypeA2 127*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeB 128*a17dbc4bSDaniel P. Berrangé member integer: int optional=False 129*a17dbc4bSDaniel P. Berrangé member onoff: bool optional=False 130*a17dbc4bSDaniel P. Berrangéobject q_obj_TestUnionInUnion-base 131*a17dbc4bSDaniel P. Berrangé member type: TestUnionEnum optional=False 132*a17dbc4bSDaniel P. Berrangéobject TestUnionInUnion 133*a17dbc4bSDaniel P. Berrangé base q_obj_TestUnionInUnion-base 134*a17dbc4bSDaniel P. Berrangé tag type 135*a17dbc4bSDaniel P. Berrangé case value-a: TestUnionTypeA 136*a17dbc4bSDaniel P. Berrangé case value-b: TestUnionTypeB 1378168ca8eSMarkus Armbrusteralternate AltEnumBool 1388168ca8eSMarkus Armbruster tag type 1398168ca8eSMarkus Armbruster case e: EnumOne 1408168ca8eSMarkus Armbruster case b: bool 1418168ca8eSMarkus Armbrusteralternate AltEnumNum 1428168ca8eSMarkus Armbruster tag type 1438168ca8eSMarkus Armbruster case e: EnumOne 1448168ca8eSMarkus Armbruster case n: number 1458168ca8eSMarkus Armbrusteralternate AltNumEnum 1468168ca8eSMarkus Armbruster tag type 1478168ca8eSMarkus Armbruster case n: number 1488168ca8eSMarkus Armbruster case e: EnumOne 1498a84767cSMarkus Armbrusteralternate AltEnumInt 1508a84767cSMarkus Armbruster tag type 1518a84767cSMarkus Armbruster case e: EnumOne 1528a84767cSMarkus Armbruster case i: int 15379db9948SPaolo Bonzinialternate AltListInt 15479db9948SPaolo Bonzini tag type 15579db9948SPaolo Bonzini case l: intList 15679db9948SPaolo Bonzini case i: int 157c0644771SMarkus Armbrusteralternate AltStrObj 158da9cb193SEric Blake tag type 1599c51b441SEric Blake case s: str 160c0644771SMarkus Armbruster case o: TestStruct 161dffd8ff9SMarkus Armbrusterobject ArrayStruct 162dffd8ff9SMarkus Armbruster member integer: intList optional=False 163dffd8ff9SMarkus Armbruster member s8: int8List optional=False 164dffd8ff9SMarkus Armbruster member s16: int16List optional=False 165dffd8ff9SMarkus Armbruster member s32: int32List optional=False 166dffd8ff9SMarkus Armbruster member s64: int64List optional=False 167dffd8ff9SMarkus Armbruster member u8: uint8List optional=False 168dffd8ff9SMarkus Armbruster member u16: uint16List optional=False 169dffd8ff9SMarkus Armbruster member u32: uint32List optional=False 170dffd8ff9SMarkus Armbruster member u64: uint64List optional=False 171dffd8ff9SMarkus Armbruster member number: numberList optional=False 172dffd8ff9SMarkus Armbruster member boolean: boolList optional=False 173dffd8ff9SMarkus Armbruster member string: strList optional=False 174dffd8ff9SMarkus Armbruster member sz: sizeList optional=True 175dffd8ff9SMarkus Armbruster member any: anyList optional=True 176dffd8ff9SMarkus Armbruster member user: StatusList optional=True 177709395f8SMarkus Armbrusterinclude include/sub-module.json 17805ebf841SMarkus Armbrustercommand user-def-cmd None -> None 1797b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 18005ebf841SMarkus Armbrusterobject q_obj_user-def-cmd1-arg 1818a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 18205ebf841SMarkus Armbrustercommand user-def-cmd1 q_obj_user-def-cmd1-arg -> None 1837b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 18405ebf841SMarkus Armbrusterobject q_obj_user-def-cmd2-arg 1858a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 1868a84767cSMarkus Armbruster member ud1b: UserDefOne optional=True 18705ebf841SMarkus Armbrustercommand user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo 1887b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 189ae6bf766SMarc-André Lureaucommand cmd-success-response None -> None 190ae6bf766SMarc-André Lureau gen=True success_response=False boxed=False oob=False preconfig=False 19104f22362SKevin Wolfcommand coroutine-cmd None -> None 19204f22362SKevin Wolf gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True 1938a84767cSMarkus Armbrusterobject q_obj_guest-get-time-arg 1948a84767cSMarkus Armbruster member a: int optional=False 1958a84767cSMarkus Armbruster member b: int optional=True 1968a84767cSMarkus Armbrustercommand guest-get-time q_obj_guest-get-time-arg -> int 1977b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 1988a84767cSMarkus Armbrusterobject q_obj_guest-sync-arg 1998a84767cSMarkus Armbruster member arg: any optional=False 2008a84767cSMarkus Armbrustercommand guest-sync q_obj_guest-sync-arg -> any 2017b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 2028a84767cSMarkus Armbrustercommand boxed-struct UserDefZero -> None 2037b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 2041e65e16cSMarkus Armbrustercommand boxed-union UserDefFlatUnion -> None 2057b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 206675b214bSMarkus Armbrustercommand boxed-empty Empty1 -> None 207675b214bSMarkus Armbruster gen=True success_response=True boxed=True oob=False preconfig=False 2087b13f2c2SIgor Mammedovcommand test-flags-command None -> None 2097b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=True preconfig=True 210156402e5SMarkus Armbrusterobject UserDefOptions 211156402e5SMarkus Armbruster member i64: intList optional=True 212156402e5SMarkus Armbruster member u64: uint64List optional=True 213156402e5SMarkus Armbruster member u16: uint16List optional=True 214156402e5SMarkus Armbruster member i64x: int optional=True 215156402e5SMarkus Armbruster member u64x: uint64 optional=True 2168a84767cSMarkus Armbrusterobject EventStructOne 2178a84767cSMarkus Armbruster member struct1: UserDefOne optional=False 218156402e5SMarkus Armbruster member string: str optional=False 2198a84767cSMarkus Armbruster member enum2: EnumOne optional=True 2208a84767cSMarkus Armbrusterevent EVENT_A None 22148825ca4SEric Blake boxed=False 2228a84767cSMarkus Armbrusterevent EVENT_B None 2238a84767cSMarkus Armbruster boxed=False 2247599697cSEric Blakeobject q_obj_EVENT_C-arg 2257599697cSEric Blake member a: int optional=True 2267599697cSEric Blake member b: UserDefOne optional=True 2277599697cSEric Blake member c: str optional=False 2288a84767cSMarkus Armbrusterevent EVENT_C q_obj_EVENT_C-arg 2298a84767cSMarkus Armbruster boxed=False 2307599697cSEric Blakeobject q_obj_EVENT_D-arg 2317599697cSEric Blake member a: EventStructOne optional=False 2327599697cSEric Blake member b: str optional=False 2337599697cSEric Blake member c: str optional=True 2347599697cSEric Blake member enum3: EnumOne optional=True 2358a84767cSMarkus Armbrusterevent EVENT_D q_obj_EVENT_D-arg 2368a84767cSMarkus Armbruster boxed=False 2378a84767cSMarkus Armbrusterevent EVENT_E UserDefZero 2388a84767cSMarkus Armbruster boxed=True 239b22e8658SMarkus Armbrusterevent EVENT_F UserDefFlatUnion 2408a84767cSMarkus Armbruster boxed=True 241675b214bSMarkus Armbrusterevent EVENT_G Empty1 242675b214bSMarkus Armbruster boxed=True 2431e381b65SMarc-André Lureauenum __org.qemu_x-Enum 2441e381b65SMarc-André Lureau member __org.qemu_x-value 2458a84767cSMarkus Armbrusterobject __org.qemu_x-Base 2468a84767cSMarkus Armbruster member __org.qemu_x-member1: __org.qemu_x-Enum optional=False 2478a84767cSMarkus Armbrusterobject __org.qemu_x-Struct 2488a84767cSMarkus Armbruster base __org.qemu_x-Base 2498a84767cSMarkus Armbruster member __org.qemu_x-member2: str optional=False 2508a84767cSMarkus Armbruster member wchar-t: int optional=True 251f0325536SMarkus Armbrusteralternate __org.qemu_x-Alt1 252f0325536SMarkus Armbruster tag type 253f0325536SMarkus Armbruster case __org.qemu_x-branch: str 254bb5821ddSMarkus Armbrusterarray __org.qemu_x-UnionList __org.qemu_x-Union 2558a84767cSMarkus Armbrusterobject __org.qemu_x-Struct2 256bb5821ddSMarkus Armbruster member array: __org.qemu_x-UnionList optional=False 257bb5821ddSMarkus Armbrusterobject __org.qemu_x-Union 2588a84767cSMarkus Armbruster base __org.qemu_x-Base 2598a84767cSMarkus Armbruster tag __org.qemu_x-member1 2608a84767cSMarkus Armbruster case __org.qemu_x-value: __org.qemu_x-Struct2 2618a84767cSMarkus Armbrusteralternate __org.qemu_x-Alt 2628a84767cSMarkus Armbruster tag type 263f0325536SMarkus Armbruster case __org.qemu_x-branch: __org.qemu_x-Base 2648a84767cSMarkus Armbrusterevent __ORG.QEMU_X-EVENT __org.qemu_x-Struct 2658a84767cSMarkus Armbruster boxed=False 266ca0ac758SMarkus Armbrusterarray __org.qemu_x-EnumList __org.qemu_x-Enum 267ca0ac758SMarkus Armbrusterarray __org.qemu_x-StructList __org.qemu_x-Struct 2687599697cSEric Blakeobject q_obj___org.qemu_x-command-arg 2697599697cSEric Blake member a: __org.qemu_x-EnumList optional=False 2707599697cSEric Blake member b: __org.qemu_x-StructList optional=False 271bb5821ddSMarkus Armbruster member c: __org.qemu_x-Union optional=False 2727599697cSEric Blake member d: __org.qemu_x-Alt optional=False 273bb5821ddSMarkus Armbrustercommand __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None 2747b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 275967c8851SMarc-André Lureauobject TestIfStruct 276967c8851SMarc-André Lureau member foo: int optional=False 277ccadd6bcSMarc-André Lureau member bar: int optional=False 27840e350f0SMarkus Armbruster if TEST_IF_STRUCT_MEMBER 279fa32eb90SMarkus Armbruster member baz: str optional=True 280fa32eb90SMarkus Armbruster if TEST_IF_STRUCT_MEMBER 2818a9f1e1dSMarc-André Lureau if TEST_IF_STRUCT 2821e381b65SMarc-André Lureauenum TestIfEnum 2831e381b65SMarc-André Lureau member foo 2841e381b65SMarc-André Lureau member bar 28540e350f0SMarkus Armbruster if TEST_IF_ENUM_MEMBER 28639d2cc8eSMarkus Armbruster if TEST_IF_UNION 28754501863SMarkus Armbrusterobject q_obj_TestIfUnion-base 28854501863SMarkus Armbruster member type: TestIfEnum optional=False 2899c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 290967c8851SMarc-André Lureauobject TestIfUnion 29154501863SMarkus Armbruster base q_obj_TestIfUnion-base 292967c8851SMarc-André Lureau tag type 29354501863SMarkus Armbruster case foo: TestStruct 29454501863SMarkus Armbruster case bar: UserDefZero 29540e350f0SMarkus Armbruster if TEST_IF_ENUM_MEMBER 2969c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 29705ebf841SMarkus Armbrusterobject q_obj_test-if-union-cmd-arg 2985aceeac0SMarkus Armbruster member union-cmd-arg: TestIfUnion optional=False 2999c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 30005ebf841SMarkus Armbrustercommand test-if-union-cmd q_obj_test-if-union-cmd-arg -> None 301f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 3029c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 303967c8851SMarc-André Lureaualternate TestIfAlternate 304967c8851SMarc-André Lureau tag type 305967c8851SMarc-André Lureau case foo: int 306967c8851SMarc-André Lureau case bar: TestStruct 30740e350f0SMarkus Armbruster if TEST_IF_ALT_MEMBER 3089c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 30905ebf841SMarkus Armbrusterobject q_obj_test-if-alternate-cmd-arg 3105aceeac0SMarkus Armbruster member alt-cmd-arg: TestIfAlternate optional=False 3119c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 31205ebf841SMarkus Armbrustercommand test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None 313f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 3149c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 315de3b3f52SMarkus Armbrustercommand test-if-cmd TestIfStruct -> UserDefThree 316de3b3f52SMarkus Armbruster gen=True success_response=True boxed=True oob=False preconfig=False 3179c629fa8SMarkus Armbruster if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']} 31805ebf841SMarkus Armbrustercommand test-cmd-return-def-three None -> UserDefThree 319967c8851SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 320de3b3f52SMarkus Armbrusterevent TEST_IF_EVENT TestIfStruct 321de3b3f52SMarkus Armbruster boxed=True 3229c629fa8SMarkus Armbruster if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']} 323dd044023SMarkus Armbrusterevent TEST_IF_EVENT2 None 324dd044023SMarkus Armbruster boxed=False 3259c629fa8SMarkus Armbruster if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}} 3268aa3a33eSKevin Wolfobject FeatureStruct0 3278aa3a33eSKevin Wolf member foo: int optional=False 3288aa3a33eSKevin Wolfobject FeatureStruct1 3298aa3a33eSKevin Wolf member foo: int optional=False 330f965e8feSMarkus Armbruster feature deprecated 3318aa3a33eSKevin Wolf feature feature1 3328aa3a33eSKevin Wolfobject FeatureStruct2 3338aa3a33eSKevin Wolf member foo: int optional=False 334a3c45b3eSMarkus Armbruster feature unstable 3358aa3a33eSKevin Wolf feature feature1 3368aa3a33eSKevin Wolfobject FeatureStruct3 3378aa3a33eSKevin Wolf member foo: int optional=False 3388aa3a33eSKevin Wolf feature feature1 3398aa3a33eSKevin Wolf feature feature2 3408aa3a33eSKevin Wolfobject FeatureStruct4 3418aa3a33eSKevin Wolf member namespace-test: int optional=False 3428aa3a33eSKevin Wolf feature namespace-test 3438aa3a33eSKevin Wolf feature int 3448aa3a33eSKevin Wolf feature name 3458aa3a33eSKevin Wolf feature if 3468aa3a33eSKevin Wolfobject CondFeatureStruct1 3478aa3a33eSKevin Wolf member foo: int optional=False 3488aa3a33eSKevin Wolf feature feature1 3498a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3508aa3a33eSKevin Wolfobject CondFeatureStruct2 3518aa3a33eSKevin Wolf member foo: int optional=False 3528aa3a33eSKevin Wolf feature feature1 3538a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3548aa3a33eSKevin Wolf feature feature2 3558a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 3568aa3a33eSKevin Wolfobject CondFeatureStruct3 3578aa3a33eSKevin Wolf member foo: int optional=False 3588aa3a33eSKevin Wolf feature feature1 3599c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 3603ad64edfSMarc-André Lureauobject CondFeatureStruct4 3613ad64edfSMarc-André Lureau member foo: int optional=False 3623ad64edfSMarc-André Lureau feature feature1 3639c629fa8SMarkus Armbruster if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 364013b4efcSMarkus Armbrusterenum FeatureEnum1 365013b4efcSMarkus Armbruster member eins 366013b4efcSMarkus Armbruster member zwei 367013b4efcSMarkus Armbruster member drei 368b6c18755SMarkus Armbruster feature deprecated 369013b4efcSMarkus Armbruster feature feature1 370013b4efcSMarkus Armbrusterobject q_obj_FeatureUnion1-base 371013b4efcSMarkus Armbruster member tag: FeatureEnum1 optional=False 372013b4efcSMarkus Armbrusterobject FeatureUnion1 373013b4efcSMarkus Armbruster base q_obj_FeatureUnion1-base 374013b4efcSMarkus Armbruster tag tag 375013b4efcSMarkus Armbruster case eins: FeatureStruct1 376013b4efcSMarkus Armbruster case zwei: q_empty 377013b4efcSMarkus Armbruster case drei: q_empty 378013b4efcSMarkus Armbruster feature feature1 379013b4efcSMarkus Armbrusteralternate FeatureAlternate1 380013b4efcSMarkus Armbruster tag type 381013b4efcSMarkus Armbruster case eins: FeatureStruct1 382013b4efcSMarkus Armbruster feature feature1 383013b4efcSMarkus Armbrusterobject q_obj_test-features0-arg 38491fa93e5SMarkus Armbruster member fs0: FeatureStruct0 optional=True 38591fa93e5SMarkus Armbruster member fs1: FeatureStruct1 optional=True 38691fa93e5SMarkus Armbruster member fs2: FeatureStruct2 optional=True 38791fa93e5SMarkus Armbruster member fs3: FeatureStruct3 optional=True 38891fa93e5SMarkus Armbruster member fs4: FeatureStruct4 optional=True 38991fa93e5SMarkus Armbruster member cfs1: CondFeatureStruct1 optional=True 39091fa93e5SMarkus Armbruster member cfs2: CondFeatureStruct2 optional=True 39191fa93e5SMarkus Armbruster member cfs3: CondFeatureStruct3 optional=True 3923ad64edfSMarc-André Lureau member cfs4: CondFeatureStruct4 optional=True 39391fa93e5SMarkus Armbrustercommand test-features0 q_obj_test-features0-arg -> FeatureStruct1 3942e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3952e2e0df2SPeter Krempacommand test-command-features1 None -> None 3962e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 397f965e8feSMarkus Armbruster feature deprecated 3982e2e0df2SPeter Krempacommand test-command-features3 None -> None 3992e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 400a3c45b3eSMarkus Armbruster feature unstable 4012e2e0df2SPeter Krempa feature feature1 4022e2e0df2SPeter Krempa feature feature2 4032e2e0df2SPeter Krempacommand test-command-cond-features1 None -> None 4042e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 4052e2e0df2SPeter Krempa feature feature1 4068a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 4072e2e0df2SPeter Krempacommand test-command-cond-features2 None -> None 4082e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 4092e2e0df2SPeter Krempa feature feature1 4108a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 4112e2e0df2SPeter Krempa feature feature2 4128a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 4132e2e0df2SPeter Krempacommand test-command-cond-features3 None -> None 4142e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 4152e2e0df2SPeter Krempa feature feature1 4169c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 417d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES0 FeatureStruct1 418a291a38fSMarkus Armbruster boxed=False 419d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES1 None 420013b4efcSMarkus Armbruster boxed=False 421f965e8feSMarkus Armbruster feature deprecated 422a3c45b3eSMarkus Armbrusterevent TEST_EVENT_FEATURES2 None 423a3c45b3eSMarkus Armbruster boxed=False 424a3c45b3eSMarkus Armbruster feature unstable 4253e7fb581SMarkus Armbrustermodule include/sub-module.json 4263e7fb581SMarkus Armbrusterinclude sub-sub-module.json 4273e7fb581SMarkus Armbrusterobject SecondArrayRef 4283e7fb581SMarkus Armbruster member s: StatusList optional=False 4293e7fb581SMarkus Armbrustermodule sub-sub-module.json 4303e7fb581SMarkus Armbrusterarray StatusList Status 4313e7fb581SMarkus Armbrusterenum Status 4323e7fb581SMarkus Armbruster member good 4333e7fb581SMarkus Armbruster member bad 4343e7fb581SMarkus Armbruster member ugly 435