1e2bbc4eaSJohn Snowmodule ./builtin 28a84767cSMarkus Armbrusterobject q_empty 31e381b65SMarc-André Lureauenum QType 41e381b65SMarc-André Lureau member none 51e381b65SMarc-André Lureau member qnull 61e381b65SMarc-André Lureau member qnum 71e381b65SMarc-André Lureau member qstring 81e381b65SMarc-André Lureau member qdict 91e381b65SMarc-André Lureau member qlist 101e381b65SMarc-André Lureau member qbool 11cf40a0a5SMarkus Armbrustermodule qapi-schema-test.json 128a84767cSMarkus Armbrusterobject TestStruct 138a84767cSMarkus Armbruster member integer: int optional=False 148a84767cSMarkus Armbruster member boolean: bool optional=False 158a84767cSMarkus Armbruster member string: str optional=False 168a84767cSMarkus Armbrusterobject NestedEnumsOne 178a84767cSMarkus Armbruster member enum1: EnumOne optional=False 188a84767cSMarkus Armbruster member enum2: EnumOne optional=True 198a84767cSMarkus Armbruster member enum3: EnumOne optional=False 208a84767cSMarkus Armbruster member enum4: EnumOne optional=True 211e381b65SMarc-André Lureauenum MyEnum 228a84767cSMarkus Armbrusterobject Empty1 238a84767cSMarkus Armbrusterobject Empty2 248a84767cSMarkus Armbruster base Empty1 250ced9531SMarkus Armbrusterobject q_obj_Union-base 260ced9531SMarkus Armbruster member type: EnumOne optional=False 270ced9531SMarkus Armbrusterobject Union 280ced9531SMarkus Armbruster base q_obj_Union-base 290ced9531SMarkus Armbruster tag type 300ced9531SMarkus Armbruster case value1: q_empty 310ced9531SMarkus Armbruster case value2: q_empty 320ced9531SMarkus Armbruster case value3: q_empty 330ced9531SMarkus Armbruster case value4: q_empty 3405ebf841SMarkus Armbrustercommand user-def-cmd0 Empty2 -> Empty2 357b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 361e381b65SMarc-André Lureauenum QEnumTwo 378a84767cSMarkus Armbruster prefix QENUM_TWO 381e381b65SMarc-André Lureau member value1 391e381b65SMarc-André Lureau member value2 408a84767cSMarkus Armbrusterobject UserDefOne 418a84767cSMarkus Armbruster base UserDefZero 428a84767cSMarkus Armbruster member string: str optional=False 438a84767cSMarkus Armbruster member enum1: EnumOne optional=True 441e381b65SMarc-André Lureauenum EnumOne 451e381b65SMarc-André Lureau member value1 461e381b65SMarc-André Lureau member value2 471e381b65SMarc-André Lureau member value3 481e381b65SMarc-André Lureau member value4 498a84767cSMarkus Armbrusterobject UserDefZero 508a84767cSMarkus Armbruster member integer: int optional=False 518a84767cSMarkus Armbrusterobject UserDefTwoDictDict 528a84767cSMarkus Armbruster member userdef: UserDefOne optional=False 538a84767cSMarkus Armbruster member string: str optional=False 548a84767cSMarkus Armbrusterobject UserDefTwoDict 558a84767cSMarkus Armbruster member string1: str optional=False 568a84767cSMarkus Armbruster member dict2: UserDefTwoDictDict optional=False 578a84767cSMarkus Armbruster member dict3: UserDefTwoDictDict optional=True 588a84767cSMarkus Armbrusterobject UserDefTwo 598a84767cSMarkus Armbruster member string0: str optional=False 608a84767cSMarkus Armbruster member dict1: UserDefTwoDict optional=False 61967c8851SMarc-André Lureauobject UserDefThree 62967c8851SMarc-André Lureau member string0: str optional=False 63ca0ac758SMarkus Armbrusterarray UserDefOneList UserDefOne 64ca0ac758SMarkus Armbrusterarray UserDefTwoList UserDefTwo 65ca0ac758SMarkus Armbrusterarray TestStructList TestStruct 668a84767cSMarkus Armbrusterobject ForceArrays 678a84767cSMarkus Armbruster member unused1: UserDefOneList optional=False 688a84767cSMarkus Armbruster member unused2: UserDefTwoList optional=False 698a84767cSMarkus Armbruster member unused3: TestStructList optional=False 708a84767cSMarkus Armbrusterobject UserDefA 718a84767cSMarkus Armbruster member boolean: bool optional=False 728a84767cSMarkus Armbruster member a_b: int optional=True 738a84767cSMarkus Armbrusterobject UserDefB 748a84767cSMarkus Armbruster member intb: int optional=False 758a84767cSMarkus Armbruster member a-b: bool optional=True 768a84767cSMarkus Armbrusterobject UserDefFlatUnion 778a84767cSMarkus Armbruster base UserDefUnionBase 788a84767cSMarkus Armbruster tag enum1 798a84767cSMarkus Armbruster case value1: UserDefA 808a84767cSMarkus Armbruster case value2: UserDefB 818a84767cSMarkus Armbruster case value3: UserDefB 82800877bbSAnton Nefedov case value4: q_empty 838a84767cSMarkus Armbrusterobject UserDefUnionBase 848a84767cSMarkus Armbruster base UserDefZero 858a84767cSMarkus Armbruster member string: str optional=False 868a84767cSMarkus Armbruster member enum1: EnumOne optional=False 878a84767cSMarkus Armbrusterobject q_obj_UserDefFlatUnion2-base 888a84767cSMarkus Armbruster member integer: int optional=True 898a84767cSMarkus Armbruster member string: str optional=False 908a84767cSMarkus Armbruster member enum1: QEnumTwo optional=False 918a84767cSMarkus Armbrusterobject UserDefFlatUnion2 928a84767cSMarkus Armbruster base q_obj_UserDefFlatUnion2-base 938a84767cSMarkus Armbruster tag enum1 948a84767cSMarkus Armbruster case value1: UserDefC 958a84767cSMarkus Armbruster case value2: UserDefB 968a84767cSMarkus Armbrusterobject WrapAlternate 978a84767cSMarkus Armbruster member alt: UserDefAlternate optional=False 988a84767cSMarkus Armbrusteralternate UserDefAlternate 998a84767cSMarkus Armbruster tag type 1008a84767cSMarkus Armbruster case udfu: UserDefFlatUnion 1018a84767cSMarkus Armbruster case e: EnumOne 1028a84767cSMarkus Armbruster case i: int 1038a84767cSMarkus Armbruster case n: null 1048a84767cSMarkus Armbrusterobject UserDefC 1058a84767cSMarkus Armbruster member string1: str optional=False 1068a84767cSMarkus Armbruster member string2: str optional=False 107*a17dbc4bSDaniel P. Berrangéenum TestUnionEnum 108*a17dbc4bSDaniel P. Berrangé member value-a 109*a17dbc4bSDaniel P. Berrangé member value-b 110*a17dbc4bSDaniel P. Berrangéenum TestUnionEnumA 111*a17dbc4bSDaniel P. Berrangé member value-a1 112*a17dbc4bSDaniel P. Berrangé member value-a2 113*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeA1 114*a17dbc4bSDaniel P. Berrangé member integer: int optional=False 115*a17dbc4bSDaniel P. Berrangé member name: str optional=False 116*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeA2 117*a17dbc4bSDaniel P. Berrangé member integer: int optional=False 118*a17dbc4bSDaniel P. Berrangé member size: int optional=False 119*a17dbc4bSDaniel P. Berrangéobject q_obj_TestUnionTypeA-base 120*a17dbc4bSDaniel P. Berrangé member type-a: TestUnionEnumA optional=False 121*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeA 122*a17dbc4bSDaniel P. Berrangé base q_obj_TestUnionTypeA-base 123*a17dbc4bSDaniel P. Berrangé tag type-a 124*a17dbc4bSDaniel P. Berrangé case value-a1: TestUnionTypeA1 125*a17dbc4bSDaniel P. Berrangé case value-a2: TestUnionTypeA2 126*a17dbc4bSDaniel P. Berrangéobject TestUnionTypeB 127*a17dbc4bSDaniel P. Berrangé member integer: int optional=False 128*a17dbc4bSDaniel P. Berrangé member onoff: bool optional=False 129*a17dbc4bSDaniel P. Berrangéobject q_obj_TestUnionInUnion-base 130*a17dbc4bSDaniel P. Berrangé member type: TestUnionEnum optional=False 131*a17dbc4bSDaniel P. Berrangéobject TestUnionInUnion 132*a17dbc4bSDaniel P. Berrangé base q_obj_TestUnionInUnion-base 133*a17dbc4bSDaniel P. Berrangé tag type 134*a17dbc4bSDaniel P. Berrangé case value-a: TestUnionTypeA 135*a17dbc4bSDaniel P. Berrangé case value-b: TestUnionTypeB 1368168ca8eSMarkus Armbrusteralternate AltEnumBool 1378168ca8eSMarkus Armbruster tag type 1388168ca8eSMarkus Armbruster case e: EnumOne 1398168ca8eSMarkus Armbruster case b: bool 1408168ca8eSMarkus Armbrusteralternate AltEnumNum 1418168ca8eSMarkus Armbruster tag type 1428168ca8eSMarkus Armbruster case e: EnumOne 1438168ca8eSMarkus Armbruster case n: number 1448168ca8eSMarkus Armbrusteralternate AltNumEnum 1458168ca8eSMarkus Armbruster tag type 1468168ca8eSMarkus Armbruster case n: number 1478168ca8eSMarkus Armbruster case e: EnumOne 1488a84767cSMarkus Armbrusteralternate AltEnumInt 1498a84767cSMarkus Armbruster tag type 1508a84767cSMarkus Armbruster case e: EnumOne 1518a84767cSMarkus Armbruster case i: int 15279db9948SPaolo Bonzinialternate AltListInt 15379db9948SPaolo Bonzini tag type 15479db9948SPaolo Bonzini case l: intList 15579db9948SPaolo Bonzini case i: int 156c0644771SMarkus Armbrusteralternate AltStrObj 157da9cb193SEric Blake tag type 1589c51b441SEric Blake case s: str 159c0644771SMarkus Armbruster case o: TestStruct 160dffd8ff9SMarkus Armbrusterobject ArrayStruct 161dffd8ff9SMarkus Armbruster member integer: intList optional=False 162dffd8ff9SMarkus Armbruster member s8: int8List optional=False 163dffd8ff9SMarkus Armbruster member s16: int16List optional=False 164dffd8ff9SMarkus Armbruster member s32: int32List optional=False 165dffd8ff9SMarkus Armbruster member s64: int64List optional=False 166dffd8ff9SMarkus Armbruster member u8: uint8List optional=False 167dffd8ff9SMarkus Armbruster member u16: uint16List optional=False 168dffd8ff9SMarkus Armbruster member u32: uint32List optional=False 169dffd8ff9SMarkus Armbruster member u64: uint64List optional=False 170dffd8ff9SMarkus Armbruster member number: numberList optional=False 171dffd8ff9SMarkus Armbruster member boolean: boolList optional=False 172dffd8ff9SMarkus Armbruster member string: strList optional=False 173dffd8ff9SMarkus Armbruster member sz: sizeList optional=True 174dffd8ff9SMarkus Armbruster member any: anyList optional=True 175dffd8ff9SMarkus Armbruster member user: StatusList optional=True 176709395f8SMarkus Armbrusterinclude include/sub-module.json 17705ebf841SMarkus Armbrustercommand user-def-cmd None -> None 1787b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 17905ebf841SMarkus Armbrusterobject q_obj_user-def-cmd1-arg 1808a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 18105ebf841SMarkus Armbrustercommand user-def-cmd1 q_obj_user-def-cmd1-arg -> None 1827b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 18305ebf841SMarkus Armbrusterobject q_obj_user-def-cmd2-arg 1848a84767cSMarkus Armbruster member ud1a: UserDefOne optional=False 1858a84767cSMarkus Armbruster member ud1b: UserDefOne optional=True 18605ebf841SMarkus Armbrustercommand user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo 1877b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 188ae6bf766SMarc-André Lureaucommand cmd-success-response None -> None 189ae6bf766SMarc-André Lureau gen=True success_response=False boxed=False oob=False preconfig=False 19004f22362SKevin Wolfcommand coroutine-cmd None -> None 19104f22362SKevin Wolf gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True 1928a84767cSMarkus Armbrusterobject q_obj_guest-get-time-arg 1938a84767cSMarkus Armbruster member a: int optional=False 1948a84767cSMarkus Armbruster member b: int optional=True 1958a84767cSMarkus Armbrustercommand guest-get-time q_obj_guest-get-time-arg -> int 1967b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 1978a84767cSMarkus Armbrusterobject q_obj_guest-sync-arg 1988a84767cSMarkus Armbruster member arg: any optional=False 1998a84767cSMarkus Armbrustercommand guest-sync q_obj_guest-sync-arg -> any 2007b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 2018a84767cSMarkus Armbrustercommand boxed-struct UserDefZero -> None 2027b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 2031e65e16cSMarkus Armbrustercommand boxed-union UserDefFlatUnion -> None 2047b13f2c2SIgor Mammedov gen=True success_response=True boxed=True oob=False preconfig=False 205675b214bSMarkus Armbrustercommand boxed-empty Empty1 -> None 206675b214bSMarkus Armbruster gen=True success_response=True boxed=True oob=False preconfig=False 2077b13f2c2SIgor Mammedovcommand test-flags-command None -> None 2087b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=True preconfig=True 209156402e5SMarkus Armbrusterobject UserDefOptions 210156402e5SMarkus Armbruster member i64: intList optional=True 211156402e5SMarkus Armbruster member u64: uint64List optional=True 212156402e5SMarkus Armbruster member u16: uint16List optional=True 213156402e5SMarkus Armbruster member i64x: int optional=True 214156402e5SMarkus Armbruster member u64x: uint64 optional=True 2158a84767cSMarkus Armbrusterobject EventStructOne 2168a84767cSMarkus Armbruster member struct1: UserDefOne optional=False 217156402e5SMarkus Armbruster member string: str optional=False 2188a84767cSMarkus Armbruster member enum2: EnumOne optional=True 2198a84767cSMarkus Armbrusterevent EVENT_A None 22048825ca4SEric Blake boxed=False 2218a84767cSMarkus Armbrusterevent EVENT_B None 2228a84767cSMarkus Armbruster boxed=False 2237599697cSEric Blakeobject q_obj_EVENT_C-arg 2247599697cSEric Blake member a: int optional=True 2257599697cSEric Blake member b: UserDefOne optional=True 2267599697cSEric Blake member c: str optional=False 2278a84767cSMarkus Armbrusterevent EVENT_C q_obj_EVENT_C-arg 2288a84767cSMarkus Armbruster boxed=False 2297599697cSEric Blakeobject q_obj_EVENT_D-arg 2307599697cSEric Blake member a: EventStructOne optional=False 2317599697cSEric Blake member b: str optional=False 2327599697cSEric Blake member c: str optional=True 2337599697cSEric Blake member enum3: EnumOne optional=True 2348a84767cSMarkus Armbrusterevent EVENT_D q_obj_EVENT_D-arg 2358a84767cSMarkus Armbruster boxed=False 2368a84767cSMarkus Armbrusterevent EVENT_E UserDefZero 2378a84767cSMarkus Armbruster boxed=True 238b22e8658SMarkus Armbrusterevent EVENT_F UserDefFlatUnion 2398a84767cSMarkus Armbruster boxed=True 240675b214bSMarkus Armbrusterevent EVENT_G Empty1 241675b214bSMarkus Armbruster boxed=True 2421e381b65SMarc-André Lureauenum __org.qemu_x-Enum 2431e381b65SMarc-André Lureau member __org.qemu_x-value 2448a84767cSMarkus Armbrusterobject __org.qemu_x-Base 2458a84767cSMarkus Armbruster member __org.qemu_x-member1: __org.qemu_x-Enum optional=False 2468a84767cSMarkus Armbrusterobject __org.qemu_x-Struct 2478a84767cSMarkus Armbruster base __org.qemu_x-Base 2488a84767cSMarkus Armbruster member __org.qemu_x-member2: str optional=False 2498a84767cSMarkus Armbruster member wchar-t: int optional=True 250f0325536SMarkus Armbrusteralternate __org.qemu_x-Alt1 251f0325536SMarkus Armbruster tag type 252f0325536SMarkus Armbruster case __org.qemu_x-branch: str 253bb5821ddSMarkus Armbrusterarray __org.qemu_x-UnionList __org.qemu_x-Union 2548a84767cSMarkus Armbrusterobject __org.qemu_x-Struct2 255bb5821ddSMarkus Armbruster member array: __org.qemu_x-UnionList optional=False 256bb5821ddSMarkus Armbrusterobject __org.qemu_x-Union 2578a84767cSMarkus Armbruster base __org.qemu_x-Base 2588a84767cSMarkus Armbruster tag __org.qemu_x-member1 2598a84767cSMarkus Armbruster case __org.qemu_x-value: __org.qemu_x-Struct2 2608a84767cSMarkus Armbrusteralternate __org.qemu_x-Alt 2618a84767cSMarkus Armbruster tag type 262f0325536SMarkus Armbruster case __org.qemu_x-branch: __org.qemu_x-Base 2638a84767cSMarkus Armbrusterevent __ORG.QEMU_X-EVENT __org.qemu_x-Struct 2648a84767cSMarkus Armbruster boxed=False 265ca0ac758SMarkus Armbrusterarray __org.qemu_x-EnumList __org.qemu_x-Enum 266ca0ac758SMarkus Armbrusterarray __org.qemu_x-StructList __org.qemu_x-Struct 2677599697cSEric Blakeobject q_obj___org.qemu_x-command-arg 2687599697cSEric Blake member a: __org.qemu_x-EnumList optional=False 2697599697cSEric Blake member b: __org.qemu_x-StructList optional=False 270bb5821ddSMarkus Armbruster member c: __org.qemu_x-Union optional=False 2717599697cSEric Blake member d: __org.qemu_x-Alt optional=False 272bb5821ddSMarkus Armbrustercommand __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None 2737b13f2c2SIgor Mammedov gen=True success_response=True boxed=False oob=False preconfig=False 274967c8851SMarc-André Lureauobject TestIfStruct 275967c8851SMarc-André Lureau member foo: int optional=False 276ccadd6bcSMarc-André Lureau member bar: int optional=False 27740e350f0SMarkus Armbruster if TEST_IF_STRUCT_MEMBER 278fa32eb90SMarkus Armbruster member baz: str optional=True 279fa32eb90SMarkus Armbruster if TEST_IF_STRUCT_MEMBER 2808a9f1e1dSMarc-André Lureau if TEST_IF_STRUCT 2811e381b65SMarc-André Lureauenum TestIfEnum 2821e381b65SMarc-André Lureau member foo 2831e381b65SMarc-André Lureau member bar 28440e350f0SMarkus Armbruster if TEST_IF_ENUM_MEMBER 28539d2cc8eSMarkus Armbruster if TEST_IF_UNION 28654501863SMarkus Armbrusterobject q_obj_TestIfUnion-base 28754501863SMarkus Armbruster member type: TestIfEnum optional=False 2889c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 289967c8851SMarc-André Lureauobject TestIfUnion 29054501863SMarkus Armbruster base q_obj_TestIfUnion-base 291967c8851SMarc-André Lureau tag type 29254501863SMarkus Armbruster case foo: TestStruct 29354501863SMarkus Armbruster case bar: UserDefZero 29440e350f0SMarkus Armbruster if TEST_IF_ENUM_MEMBER 2959c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 29605ebf841SMarkus Armbrusterobject q_obj_test-if-union-cmd-arg 2975aceeac0SMarkus Armbruster member union-cmd-arg: TestIfUnion optional=False 2989c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 29905ebf841SMarkus Armbrustercommand test-if-union-cmd q_obj_test-if-union-cmd-arg -> None 300f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 3019c629fa8SMarkus Armbruster if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']} 302967c8851SMarc-André Lureaualternate TestIfAlternate 303967c8851SMarc-André Lureau tag type 304967c8851SMarc-André Lureau case foo: int 305967c8851SMarc-André Lureau case bar: TestStruct 30640e350f0SMarkus Armbruster if TEST_IF_ALT_MEMBER 3079c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 30805ebf841SMarkus Armbrusterobject q_obj_test-if-alternate-cmd-arg 3095aceeac0SMarkus Armbruster member alt-cmd-arg: TestIfAlternate optional=False 3109c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 31105ebf841SMarkus Armbrustercommand test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None 312f8c4fdd6SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 3139c629fa8SMarkus Armbruster if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']} 314de3b3f52SMarkus Armbrustercommand test-if-cmd TestIfStruct -> UserDefThree 315de3b3f52SMarkus Armbruster gen=True success_response=True boxed=True oob=False preconfig=False 3169c629fa8SMarkus Armbruster if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']} 31705ebf841SMarkus Armbrustercommand test-cmd-return-def-three None -> UserDefThree 318967c8851SMarc-André Lureau gen=True success_response=True boxed=False oob=False preconfig=False 319de3b3f52SMarkus Armbrusterevent TEST_IF_EVENT TestIfStruct 320de3b3f52SMarkus Armbruster boxed=True 3219c629fa8SMarkus Armbruster if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']} 322dd044023SMarkus Armbrusterevent TEST_IF_EVENT2 None 323dd044023SMarkus Armbruster boxed=False 3249c629fa8SMarkus Armbruster if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}} 3258aa3a33eSKevin Wolfobject FeatureStruct0 3268aa3a33eSKevin Wolf member foo: int optional=False 3278aa3a33eSKevin Wolfobject FeatureStruct1 3288aa3a33eSKevin Wolf member foo: int optional=False 329f965e8feSMarkus Armbruster feature deprecated 3308aa3a33eSKevin Wolf feature feature1 3318aa3a33eSKevin Wolfobject FeatureStruct2 3328aa3a33eSKevin Wolf member foo: int optional=False 333a3c45b3eSMarkus Armbruster feature unstable 3348aa3a33eSKevin Wolf feature feature1 3358aa3a33eSKevin Wolfobject FeatureStruct3 3368aa3a33eSKevin Wolf member foo: int optional=False 3378aa3a33eSKevin Wolf feature feature1 3388aa3a33eSKevin Wolf feature feature2 3398aa3a33eSKevin Wolfobject FeatureStruct4 3408aa3a33eSKevin Wolf member namespace-test: int optional=False 3418aa3a33eSKevin Wolf feature namespace-test 3428aa3a33eSKevin Wolf feature int 3438aa3a33eSKevin Wolf feature name 3448aa3a33eSKevin Wolf feature if 3458aa3a33eSKevin Wolfobject CondFeatureStruct1 3468aa3a33eSKevin Wolf member foo: int optional=False 3478aa3a33eSKevin Wolf feature feature1 3488a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3498aa3a33eSKevin Wolfobject CondFeatureStruct2 3508aa3a33eSKevin Wolf member foo: int optional=False 3518aa3a33eSKevin Wolf feature feature1 3528a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 3538aa3a33eSKevin Wolf feature feature2 3548a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 3558aa3a33eSKevin Wolfobject CondFeatureStruct3 3568aa3a33eSKevin Wolf member foo: int optional=False 3578aa3a33eSKevin Wolf feature feature1 3589c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 3593ad64edfSMarc-André Lureauobject CondFeatureStruct4 3603ad64edfSMarc-André Lureau member foo: int optional=False 3613ad64edfSMarc-André Lureau feature feature1 3629c629fa8SMarkus Armbruster if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 363013b4efcSMarkus Armbrusterenum FeatureEnum1 364013b4efcSMarkus Armbruster member eins 365013b4efcSMarkus Armbruster member zwei 366013b4efcSMarkus Armbruster member drei 367b6c18755SMarkus Armbruster feature deprecated 368013b4efcSMarkus Armbruster feature feature1 369013b4efcSMarkus Armbrusterobject q_obj_FeatureUnion1-base 370013b4efcSMarkus Armbruster member tag: FeatureEnum1 optional=False 371013b4efcSMarkus Armbrusterobject FeatureUnion1 372013b4efcSMarkus Armbruster base q_obj_FeatureUnion1-base 373013b4efcSMarkus Armbruster tag tag 374013b4efcSMarkus Armbruster case eins: FeatureStruct1 375013b4efcSMarkus Armbruster case zwei: q_empty 376013b4efcSMarkus Armbruster case drei: q_empty 377013b4efcSMarkus Armbruster feature feature1 378013b4efcSMarkus Armbrusteralternate FeatureAlternate1 379013b4efcSMarkus Armbruster tag type 380013b4efcSMarkus Armbruster case eins: FeatureStruct1 381013b4efcSMarkus Armbruster feature feature1 382013b4efcSMarkus Armbrusterobject q_obj_test-features0-arg 38391fa93e5SMarkus Armbruster member fs0: FeatureStruct0 optional=True 38491fa93e5SMarkus Armbruster member fs1: FeatureStruct1 optional=True 38591fa93e5SMarkus Armbruster member fs2: FeatureStruct2 optional=True 38691fa93e5SMarkus Armbruster member fs3: FeatureStruct3 optional=True 38791fa93e5SMarkus Armbruster member fs4: FeatureStruct4 optional=True 38891fa93e5SMarkus Armbruster member cfs1: CondFeatureStruct1 optional=True 38991fa93e5SMarkus Armbruster member cfs2: CondFeatureStruct2 optional=True 39091fa93e5SMarkus Armbruster member cfs3: CondFeatureStruct3 optional=True 3913ad64edfSMarc-André Lureau member cfs4: CondFeatureStruct4 optional=True 39291fa93e5SMarkus Armbrustercommand test-features0 q_obj_test-features0-arg -> FeatureStruct1 3932e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 3942e2e0df2SPeter Krempacommand test-command-features1 None -> None 3952e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 396f965e8feSMarkus Armbruster feature deprecated 3972e2e0df2SPeter Krempacommand test-command-features3 None -> None 3982e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 399a3c45b3eSMarkus Armbruster feature unstable 4002e2e0df2SPeter Krempa feature feature1 4012e2e0df2SPeter Krempa feature feature2 4022e2e0df2SPeter Krempacommand test-command-cond-features1 None -> None 4032e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 4042e2e0df2SPeter Krempa feature feature1 4058a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 4062e2e0df2SPeter Krempacommand test-command-cond-features2 None -> None 4072e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 4082e2e0df2SPeter Krempa feature feature1 4098a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_1 4102e2e0df2SPeter Krempa feature feature2 4118a9f1e1dSMarc-André Lureau if TEST_IF_FEATURE_2 4122e2e0df2SPeter Krempacommand test-command-cond-features3 None -> None 4132e2e0df2SPeter Krempa gen=True success_response=True boxed=False oob=False preconfig=False 4142e2e0df2SPeter Krempa feature feature1 4159c629fa8SMarkus Armbruster if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']} 416d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES0 FeatureStruct1 417a291a38fSMarkus Armbruster boxed=False 418d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES1 None 419013b4efcSMarkus Armbruster boxed=False 420f965e8feSMarkus Armbruster feature deprecated 421a3c45b3eSMarkus Armbrusterevent TEST_EVENT_FEATURES2 None 422a3c45b3eSMarkus Armbruster boxed=False 423a3c45b3eSMarkus Armbruster feature unstable 4243e7fb581SMarkus Armbrustermodule include/sub-module.json 4253e7fb581SMarkus Armbrusterinclude sub-sub-module.json 4263e7fb581SMarkus Armbrusterobject SecondArrayRef 4273e7fb581SMarkus Armbruster member s: StatusList optional=False 4283e7fb581SMarkus Armbrustermodule sub-sub-module.json 4293e7fb581SMarkus Armbrusterarray StatusList Status 4303e7fb581SMarkus Armbrusterenum Status 4313e7fb581SMarkus Armbruster member good 4323e7fb581SMarkus Armbruster member bad 4333e7fb581SMarkus Armbruster member ugly 434