module None
object q_empty
enum QType
    prefix QTYPE
    member none
    member qnull
    member qnum
    member qstring
    member qdict
    member qlist
    member qbool
module qapi-schema-test.json
object TestStruct
    member integer: int optional=False
    member boolean: bool optional=False
    member string: str optional=False
object NestedEnumsOne
    member enum1: EnumOne optional=False
    member enum2: EnumOne optional=True
    member enum3: EnumOne optional=False
    member enum4: EnumOne optional=True
enum MyEnum
object Empty1
object Empty2
    base Empty1
command user_def_cmd0 Empty2 -> Empty2
   gen=True success_response=True boxed=False oob=False preconfig=False
enum QEnumTwo
    prefix QENUM_TWO
    member value1
    member value2
object UserDefOne
    base UserDefZero
    member string: str optional=False
    member enum1: EnumOne optional=True
enum EnumOne
    member value1
    member value2
    member value3
    member value4
object UserDefZero
    member integer: int optional=False
object UserDefTwoDictDict
    member userdef: UserDefOne optional=False
    member string: str optional=False
object UserDefTwoDict
    member string1: str optional=False
    member dict2: UserDefTwoDictDict optional=False
    member dict3: UserDefTwoDictDict optional=True
object UserDefTwo
    member string0: str optional=False
    member dict1: UserDefTwoDict optional=False
object UserDefThree
    member string0: str optional=False
object ForceArrays
    member unused1: UserDefOneList optional=False
    member unused2: UserDefTwoList optional=False
    member unused3: TestStructList optional=False
object UserDefA
    member boolean: bool optional=False
    member a_b: int optional=True
object UserDefB
    member intb: int optional=False
    member a-b: bool optional=True
object UserDefFlatUnion
    base UserDefUnionBase
    tag enum1
    case value1: UserDefA
    case value2: UserDefB
    case value3: UserDefB
    case value4: q_empty
object UserDefUnionBase
    base UserDefZero
    member string: str optional=False
    member enum1: EnumOne optional=False
object q_obj_UserDefFlatUnion2-base
    member integer: int optional=True
    member string: str optional=False
    member enum1: QEnumTwo optional=False
object UserDefFlatUnion2
    base q_obj_UserDefFlatUnion2-base
    tag enum1
    case value1: UserDefC
    case value2: UserDefB
object WrapAlternate
    member alt: UserDefAlternate optional=False
alternate UserDefAlternate
    tag type
    case udfu: UserDefFlatUnion
    case e: EnumOne
    case i: int
    case n: null
object UserDefC
    member string1: str optional=False
    member string2: str optional=False
alternate AltEnumBool
    tag type
    case e: EnumOne
    case b: bool
alternate AltEnumNum
    tag type
    case e: EnumOne
    case n: number
alternate AltNumEnum
    tag type
    case n: number
    case e: EnumOne
alternate AltEnumInt
    tag type
    case e: EnumOne
    case i: int
alternate AltStrObj
    tag type
    case s: str
    case o: TestStruct
object q_obj_intList-wrapper
    member data: intList optional=False
object q_obj_int8List-wrapper
    member data: int8List optional=False
object q_obj_int16List-wrapper
    member data: int16List optional=False
object q_obj_int32List-wrapper
    member data: int32List optional=False
object q_obj_int64List-wrapper
    member data: int64List optional=False
object q_obj_uint8List-wrapper
    member data: uint8List optional=False
object q_obj_uint16List-wrapper
    member data: uint16List optional=False
object q_obj_uint32List-wrapper
    member data: uint32List optional=False
object q_obj_uint64List-wrapper
    member data: uint64List optional=False
object q_obj_numberList-wrapper
    member data: numberList optional=False
object q_obj_boolList-wrapper
    member data: boolList optional=False
object q_obj_strList-wrapper
    member data: strList optional=False
object q_obj_sizeList-wrapper
    member data: sizeList optional=False
object q_obj_anyList-wrapper
    member data: anyList optional=False
enum UserDefNativeListUnionKind
    member integer
    member s8
    member s16
    member s32
    member s64
    member u8
    member u16
    member u32
    member u64
    member number
    member boolean
    member string
    member sizes
    member any
object UserDefNativeListUnion
    member type: UserDefNativeListUnionKind optional=False
    tag type
    case integer: q_obj_intList-wrapper
    case s8: q_obj_int8List-wrapper
    case s16: q_obj_int16List-wrapper
    case s32: q_obj_int32List-wrapper
    case s64: q_obj_int64List-wrapper
    case u8: q_obj_uint8List-wrapper
    case u16: q_obj_uint16List-wrapper
    case u32: q_obj_uint32List-wrapper
    case u64: q_obj_uint64List-wrapper
    case number: q_obj_numberList-wrapper
    case boolean: q_obj_boolList-wrapper
    case string: q_obj_strList-wrapper
    case sizes: q_obj_sizeList-wrapper
    case any: q_obj_anyList-wrapper
command user_def_cmd None -> None
   gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_user_def_cmd1-arg
    member ud1a: UserDefOne optional=False
command user_def_cmd1 q_obj_user_def_cmd1-arg -> None
   gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_user_def_cmd2-arg
    member ud1a: UserDefOne optional=False
    member ud1b: UserDefOne optional=True
command user_def_cmd2 q_obj_user_def_cmd2-arg -> UserDefTwo
   gen=True success_response=True boxed=False oob=False preconfig=False
command cmd-success-response None -> None
   gen=True success_response=False boxed=False oob=False preconfig=False
object q_obj_guest-get-time-arg
    member a: int optional=False
    member b: int optional=True
command guest-get-time q_obj_guest-get-time-arg -> int
   gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_guest-sync-arg
    member arg: any optional=False
command guest-sync q_obj_guest-sync-arg -> any
   gen=True success_response=True boxed=False oob=False preconfig=False
command boxed-struct UserDefZero -> None
   gen=True success_response=True boxed=True oob=False preconfig=False
command boxed-union UserDefNativeListUnion -> None
   gen=True success_response=True boxed=True oob=False preconfig=False
command test-flags-command None -> None
   gen=True success_response=True boxed=False oob=True preconfig=True
object UserDefOptions
    member i64: intList optional=True
    member u64: uint64List optional=True
    member u16: uint16List optional=True
    member i64x: int optional=True
    member u64x: uint64 optional=True
object EventStructOne
    member struct1: UserDefOne optional=False
    member string: str optional=False
    member enum2: EnumOne optional=True
event EVENT_A None
   boxed=False
event EVENT_B None
   boxed=False
object q_obj_EVENT_C-arg
    member a: int optional=True
    member b: UserDefOne optional=True
    member c: str optional=False
event EVENT_C q_obj_EVENT_C-arg
   boxed=False
object q_obj_EVENT_D-arg
    member a: EventStructOne optional=False
    member b: str optional=False
    member c: str optional=True
    member enum3: EnumOne optional=True
event EVENT_D q_obj_EVENT_D-arg
   boxed=False
event EVENT_E UserDefZero
   boxed=True
event EVENT_F UserDefAlternate
   boxed=True
enum __org.qemu_x-Enum
    member __org.qemu_x-value
object __org.qemu_x-Base
    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
object __org.qemu_x-Struct
    base __org.qemu_x-Base
    member __org.qemu_x-member2: str optional=False
    member wchar-t: int optional=True
object q_obj_str-wrapper
    member data: str optional=False
enum __org.qemu_x-Union1Kind
    member __org.qemu_x-branch
object __org.qemu_x-Union1
    member type: __org.qemu_x-Union1Kind optional=False
    tag type
    case __org.qemu_x-branch: q_obj_str-wrapper
object __org.qemu_x-Struct2
    member array: __org.qemu_x-Union1List optional=False
object __org.qemu_x-Union2
    base __org.qemu_x-Base
    tag __org.qemu_x-member1
    case __org.qemu_x-value: __org.qemu_x-Struct2
alternate __org.qemu_x-Alt
    tag type
    case __org.qemu_x-branch: str
    case b: __org.qemu_x-Base
event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
   boxed=False
object q_obj___org.qemu_x-command-arg
    member a: __org.qemu_x-EnumList optional=False
    member b: __org.qemu_x-StructList optional=False
    member c: __org.qemu_x-Union2 optional=False
    member d: __org.qemu_x-Alt optional=False
command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Union1
   gen=True success_response=True boxed=False oob=False preconfig=False
object TestIfStruct
    member foo: int optional=False
    member bar: int optional=False
        if ['defined(TEST_IF_STRUCT_BAR)']
    if ['defined(TEST_IF_STRUCT)']
enum TestIfEnum
    member foo
    member bar
        if ['defined(TEST_IF_ENUM_BAR)']
    if ['defined(TEST_IF_ENUM)']
object q_obj_TestStruct-wrapper
    member data: TestStruct optional=False
enum TestIfUnionKind
    member foo
    member union_bar
        if ['defined(TEST_IF_UNION_BAR)']
    if ['defined(TEST_IF_UNION) && defined(TEST_IF_STRUCT)']
object TestIfUnion
    member type: TestIfUnionKind optional=False
    tag type
    case foo: q_obj_TestStruct-wrapper
    case union_bar: q_obj_str-wrapper
        if ['defined(TEST_IF_UNION_BAR)']
    if ['defined(TEST_IF_UNION) && defined(TEST_IF_STRUCT)']
object q_obj_TestIfUnionCmd-arg
    member union_cmd_arg: TestIfUnion optional=False
    if ['defined(TEST_IF_UNION)']
command TestIfUnionCmd q_obj_TestIfUnionCmd-arg -> None
   gen=True success_response=True boxed=False oob=False preconfig=False
    if ['defined(TEST_IF_UNION)']
alternate TestIfAlternate
    tag type
    case foo: int
    case bar: TestStruct
        if ['defined(TEST_IF_ALT_BAR)']
    if ['defined(TEST_IF_ALT) && defined(TEST_IF_STRUCT)']
object q_obj_TestIfAlternateCmd-arg
    member alt_cmd_arg: TestIfAlternate optional=False
    if ['defined(TEST_IF_ALT)']
command TestIfAlternateCmd q_obj_TestIfAlternateCmd-arg -> None
   gen=True success_response=True boxed=False oob=False preconfig=False
    if ['defined(TEST_IF_ALT)']
object q_obj_TestIfCmd-arg
    member foo: TestIfStruct optional=False
    member bar: TestIfEnum optional=False
        if ['defined(TEST_IF_CMD_BAR)']
    if ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)']
command TestIfCmd q_obj_TestIfCmd-arg -> UserDefThree
   gen=True success_response=True boxed=False oob=False preconfig=False
    if ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)']
command TestCmdReturnDefThree None -> UserDefThree
   gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_TestIfEvent-arg
    member foo: TestIfStruct optional=False
    member bar: TestIfEnum optional=False
        if ['defined(TEST_IF_EVT_BAR)']
    if ['defined(TEST_IF_EVT) && defined(TEST_IF_STRUCT)']
event TestIfEvent q_obj_TestIfEvent-arg
   boxed=False
    if ['defined(TEST_IF_EVT) && defined(TEST_IF_STRUCT)']
