xref: /aosp_15_r20/external/flatbuffers/tests/MyGame/Example/StructOfStructs.py (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker# automatically generated by the FlatBuffers compiler, do not modify
2*890232f2SAndroid Build Coastguard Worker
3*890232f2SAndroid Build Coastguard Worker# namespace: Example
4*890232f2SAndroid Build Coastguard Worker
5*890232f2SAndroid Build Coastguard Workerimport flatbuffers
6*890232f2SAndroid Build Coastguard Workerfrom flatbuffers.compat import import_numpy
7*890232f2SAndroid Build Coastguard Workernp = import_numpy()
8*890232f2SAndroid Build Coastguard Worker
9*890232f2SAndroid Build Coastguard Workerclass StructOfStructs(object):
10*890232f2SAndroid Build Coastguard Worker    __slots__ = ['_tab']
11*890232f2SAndroid Build Coastguard Worker
12*890232f2SAndroid Build Coastguard Worker    @classmethod
13*890232f2SAndroid Build Coastguard Worker    def SizeOf(cls):
14*890232f2SAndroid Build Coastguard Worker        return 20
15*890232f2SAndroid Build Coastguard Worker
16*890232f2SAndroid Build Coastguard Worker    # StructOfStructs
17*890232f2SAndroid Build Coastguard Worker    def Init(self, buf, pos):
18*890232f2SAndroid Build Coastguard Worker        self._tab = flatbuffers.table.Table(buf, pos)
19*890232f2SAndroid Build Coastguard Worker
20*890232f2SAndroid Build Coastguard Worker    # StructOfStructs
21*890232f2SAndroid Build Coastguard Worker    def A(self, obj):
22*890232f2SAndroid Build Coastguard Worker        obj.Init(self._tab.Bytes, self._tab.Pos + 0)
23*890232f2SAndroid Build Coastguard Worker        return obj
24*890232f2SAndroid Build Coastguard Worker
25*890232f2SAndroid Build Coastguard Worker    # StructOfStructs
26*890232f2SAndroid Build Coastguard Worker    def B(self, obj):
27*890232f2SAndroid Build Coastguard Worker        obj.Init(self._tab.Bytes, self._tab.Pos + 8)
28*890232f2SAndroid Build Coastguard Worker        return obj
29*890232f2SAndroid Build Coastguard Worker
30*890232f2SAndroid Build Coastguard Worker    # StructOfStructs
31*890232f2SAndroid Build Coastguard Worker    def C(self, obj):
32*890232f2SAndroid Build Coastguard Worker        obj.Init(self._tab.Bytes, self._tab.Pos + 12)
33*890232f2SAndroid Build Coastguard Worker        return obj
34*890232f2SAndroid Build Coastguard Worker
35*890232f2SAndroid Build Coastguard Worker
36*890232f2SAndroid Build Coastguard Workerdef CreateStructOfStructs(builder, a_id, a_distance, b_a, b_b, c_id, c_distance):
37*890232f2SAndroid Build Coastguard Worker    builder.Prep(4, 20)
38*890232f2SAndroid Build Coastguard Worker    builder.Prep(4, 8)
39*890232f2SAndroid Build Coastguard Worker    builder.PrependUint32(c_distance)
40*890232f2SAndroid Build Coastguard Worker    builder.PrependUint32(c_id)
41*890232f2SAndroid Build Coastguard Worker    builder.Prep(2, 4)
42*890232f2SAndroid Build Coastguard Worker    builder.Pad(1)
43*890232f2SAndroid Build Coastguard Worker    builder.PrependInt8(b_b)
44*890232f2SAndroid Build Coastguard Worker    builder.PrependInt16(b_a)
45*890232f2SAndroid Build Coastguard Worker    builder.Prep(4, 8)
46*890232f2SAndroid Build Coastguard Worker    builder.PrependUint32(a_distance)
47*890232f2SAndroid Build Coastguard Worker    builder.PrependUint32(a_id)
48*890232f2SAndroid Build Coastguard Worker    return builder.Offset()
49*890232f2SAndroid Build Coastguard Worker
50*890232f2SAndroid Build Coastguard Workerimport MyGame.Example.Ability
51*890232f2SAndroid Build Coastguard Workerimport MyGame.Example.Test
52*890232f2SAndroid Build Coastguard Workertry:
53*890232f2SAndroid Build Coastguard Worker    from typing import Optional
54*890232f2SAndroid Build Coastguard Workerexcept:
55*890232f2SAndroid Build Coastguard Worker    pass
56*890232f2SAndroid Build Coastguard Worker
57*890232f2SAndroid Build Coastguard Workerclass StructOfStructsT(object):
58*890232f2SAndroid Build Coastguard Worker
59*890232f2SAndroid Build Coastguard Worker    # StructOfStructsT
60*890232f2SAndroid Build Coastguard Worker    def __init__(self):
61*890232f2SAndroid Build Coastguard Worker        self.a = None  # type: Optional[MyGame.Example.Ability.AbilityT]
62*890232f2SAndroid Build Coastguard Worker        self.b = None  # type: Optional[MyGame.Example.Test.TestT]
63*890232f2SAndroid Build Coastguard Worker        self.c = None  # type: Optional[MyGame.Example.Ability.AbilityT]
64*890232f2SAndroid Build Coastguard Worker
65*890232f2SAndroid Build Coastguard Worker    @classmethod
66*890232f2SAndroid Build Coastguard Worker    def InitFromBuf(cls, buf, pos):
67*890232f2SAndroid Build Coastguard Worker        structOfStructs = StructOfStructs()
68*890232f2SAndroid Build Coastguard Worker        structOfStructs.Init(buf, pos)
69*890232f2SAndroid Build Coastguard Worker        return cls.InitFromObj(structOfStructs)
70*890232f2SAndroid Build Coastguard Worker
71*890232f2SAndroid Build Coastguard Worker    @classmethod
72*890232f2SAndroid Build Coastguard Worker    def InitFromObj(cls, structOfStructs):
73*890232f2SAndroid Build Coastguard Worker        x = StructOfStructsT()
74*890232f2SAndroid Build Coastguard Worker        x._UnPack(structOfStructs)
75*890232f2SAndroid Build Coastguard Worker        return x
76*890232f2SAndroid Build Coastguard Worker
77*890232f2SAndroid Build Coastguard Worker    # StructOfStructsT
78*890232f2SAndroid Build Coastguard Worker    def _UnPack(self, structOfStructs):
79*890232f2SAndroid Build Coastguard Worker        if structOfStructs is None:
80*890232f2SAndroid Build Coastguard Worker            return
81*890232f2SAndroid Build Coastguard Worker        if structOfStructs.A(MyGame.Example.Ability.Ability()) is not None:
82*890232f2SAndroid Build Coastguard Worker            self.a = MyGame.Example.Ability.AbilityT.InitFromObj(structOfStructs.A(MyGame.Example.Ability.Ability()))
83*890232f2SAndroid Build Coastguard Worker        if structOfStructs.B(MyGame.Example.Test.Test()) is not None:
84*890232f2SAndroid Build Coastguard Worker            self.b = MyGame.Example.Test.TestT.InitFromObj(structOfStructs.B(MyGame.Example.Test.Test()))
85*890232f2SAndroid Build Coastguard Worker        if structOfStructs.C(MyGame.Example.Ability.Ability()) is not None:
86*890232f2SAndroid Build Coastguard Worker            self.c = MyGame.Example.Ability.AbilityT.InitFromObj(structOfStructs.C(MyGame.Example.Ability.Ability()))
87*890232f2SAndroid Build Coastguard Worker
88*890232f2SAndroid Build Coastguard Worker    # StructOfStructsT
89*890232f2SAndroid Build Coastguard Worker    def Pack(self, builder):
90*890232f2SAndroid Build Coastguard Worker        return CreateStructOfStructs(builder, self.a.id, self.a.distance, self.b.a, self.b.b, self.c.id, self.c.distance)
91