xref: /aosp_15_r20/external/flatbuffers/tests/MyGame/Example/NestedStruct.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 NestedStruct(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 32
15*890232f2SAndroid Build Coastguard Worker
16*890232f2SAndroid Build Coastguard Worker    # NestedStruct
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    # NestedStruct
21*890232f2SAndroid Build Coastguard Worker    def A(self): return [self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + i * 4)) for i in range(2)]
22*890232f2SAndroid Build Coastguard Worker    # NestedStruct
23*890232f2SAndroid Build Coastguard Worker    def ALength(self):
24*890232f2SAndroid Build Coastguard Worker        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(0))
25*890232f2SAndroid Build Coastguard Worker        if o != 0:
26*890232f2SAndroid Build Coastguard Worker            return self._tab.VectorLen(o)
27*890232f2SAndroid Build Coastguard Worker        return 0
28*890232f2SAndroid Build Coastguard Worker
29*890232f2SAndroid Build Coastguard Worker    # NestedStruct
30*890232f2SAndroid Build Coastguard Worker    def AIsNone(self):
31*890232f2SAndroid Build Coastguard Worker        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(0))
32*890232f2SAndroid Build Coastguard Worker        return o == 0
33*890232f2SAndroid Build Coastguard Worker
34*890232f2SAndroid Build Coastguard Worker    # NestedStruct
35*890232f2SAndroid Build Coastguard Worker    def B(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
36*890232f2SAndroid Build Coastguard Worker    # NestedStruct
37*890232f2SAndroid Build Coastguard Worker    def C(self): return [self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(9 + i * 1)) for i in range(2)]
38*890232f2SAndroid Build Coastguard Worker    # NestedStruct
39*890232f2SAndroid Build Coastguard Worker    def CLength(self):
40*890232f2SAndroid Build Coastguard Worker        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(9))
41*890232f2SAndroid Build Coastguard Worker        if o != 0:
42*890232f2SAndroid Build Coastguard Worker            return self._tab.VectorLen(o)
43*890232f2SAndroid Build Coastguard Worker        return 0
44*890232f2SAndroid Build Coastguard Worker
45*890232f2SAndroid Build Coastguard Worker    # NestedStruct
46*890232f2SAndroid Build Coastguard Worker    def CIsNone(self):
47*890232f2SAndroid Build Coastguard Worker        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(9))
48*890232f2SAndroid Build Coastguard Worker        return o == 0
49*890232f2SAndroid Build Coastguard Worker
50*890232f2SAndroid Build Coastguard Worker    # NestedStruct
51*890232f2SAndroid Build Coastguard Worker    def D(self): return [self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16 + i * 8)) for i in range(2)]
52*890232f2SAndroid Build Coastguard Worker    # NestedStruct
53*890232f2SAndroid Build Coastguard Worker    def DLength(self):
54*890232f2SAndroid Build Coastguard Worker        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
55*890232f2SAndroid Build Coastguard Worker        if o != 0:
56*890232f2SAndroid Build Coastguard Worker            return self._tab.VectorLen(o)
57*890232f2SAndroid Build Coastguard Worker        return 0
58*890232f2SAndroid Build Coastguard Worker
59*890232f2SAndroid Build Coastguard Worker    # NestedStruct
60*890232f2SAndroid Build Coastguard Worker    def DIsNone(self):
61*890232f2SAndroid Build Coastguard Worker        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
62*890232f2SAndroid Build Coastguard Worker        return o == 0
63*890232f2SAndroid Build Coastguard Worker
64*890232f2SAndroid Build Coastguard Worker
65*890232f2SAndroid Build Coastguard Workerdef CreateNestedStruct(builder, a, b, c, d):
66*890232f2SAndroid Build Coastguard Worker    builder.Prep(8, 32)
67*890232f2SAndroid Build Coastguard Worker    for _idx0 in range(2 , 0, -1):
68*890232f2SAndroid Build Coastguard Worker        builder.PrependInt64(d[_idx0-1])
69*890232f2SAndroid Build Coastguard Worker    builder.Pad(5)
70*890232f2SAndroid Build Coastguard Worker    for _idx0 in range(2 , 0, -1):
71*890232f2SAndroid Build Coastguard Worker        builder.PrependInt8(c[_idx0-1])
72*890232f2SAndroid Build Coastguard Worker    builder.PrependInt8(b)
73*890232f2SAndroid Build Coastguard Worker    for _idx0 in range(2 , 0, -1):
74*890232f2SAndroid Build Coastguard Worker        builder.PrependInt32(a[_idx0-1])
75*890232f2SAndroid Build Coastguard Worker    return builder.Offset()
76*890232f2SAndroid Build Coastguard Worker
77*890232f2SAndroid Build Coastguard Workertry:
78*890232f2SAndroid Build Coastguard Worker    from typing import List
79*890232f2SAndroid Build Coastguard Workerexcept:
80*890232f2SAndroid Build Coastguard Worker    pass
81*890232f2SAndroid Build Coastguard Worker
82*890232f2SAndroid Build Coastguard Workerclass NestedStructT(object):
83*890232f2SAndroid Build Coastguard Worker
84*890232f2SAndroid Build Coastguard Worker    # NestedStructT
85*890232f2SAndroid Build Coastguard Worker    def __init__(self):
86*890232f2SAndroid Build Coastguard Worker        self.a = None  # type: List[int]
87*890232f2SAndroid Build Coastguard Worker        self.b = 0  # type: int
88*890232f2SAndroid Build Coastguard Worker        self.c = None  # type: List[int]
89*890232f2SAndroid Build Coastguard Worker        self.d = None  # type: List[int]
90*890232f2SAndroid Build Coastguard Worker
91*890232f2SAndroid Build Coastguard Worker    @classmethod
92*890232f2SAndroid Build Coastguard Worker    def InitFromBuf(cls, buf, pos):
93*890232f2SAndroid Build Coastguard Worker        nestedStruct = NestedStruct()
94*890232f2SAndroid Build Coastguard Worker        nestedStruct.Init(buf, pos)
95*890232f2SAndroid Build Coastguard Worker        return cls.InitFromObj(nestedStruct)
96*890232f2SAndroid Build Coastguard Worker
97*890232f2SAndroid Build Coastguard Worker    @classmethod
98*890232f2SAndroid Build Coastguard Worker    def InitFromObj(cls, nestedStruct):
99*890232f2SAndroid Build Coastguard Worker        x = NestedStructT()
100*890232f2SAndroid Build Coastguard Worker        x._UnPack(nestedStruct)
101*890232f2SAndroid Build Coastguard Worker        return x
102*890232f2SAndroid Build Coastguard Worker
103*890232f2SAndroid Build Coastguard Worker    # NestedStructT
104*890232f2SAndroid Build Coastguard Worker    def _UnPack(self, nestedStruct):
105*890232f2SAndroid Build Coastguard Worker        if nestedStruct is None:
106*890232f2SAndroid Build Coastguard Worker            return
107*890232f2SAndroid Build Coastguard Worker        if not nestedStruct.AIsNone():
108*890232f2SAndroid Build Coastguard Worker            if np is None:
109*890232f2SAndroid Build Coastguard Worker                self.a = []
110*890232f2SAndroid Build Coastguard Worker                for i in range(nestedStruct.ALength()):
111*890232f2SAndroid Build Coastguard Worker                    self.a.append(nestedStruct.A(i))
112*890232f2SAndroid Build Coastguard Worker            else:
113*890232f2SAndroid Build Coastguard Worker                self.a = nestedStruct.AAsNumpy()
114*890232f2SAndroid Build Coastguard Worker        self.b = nestedStruct.B()
115*890232f2SAndroid Build Coastguard Worker        if not nestedStruct.CIsNone():
116*890232f2SAndroid Build Coastguard Worker            if np is None:
117*890232f2SAndroid Build Coastguard Worker                self.c = []
118*890232f2SAndroid Build Coastguard Worker                for i in range(nestedStruct.CLength()):
119*890232f2SAndroid Build Coastguard Worker                    self.c.append(nestedStruct.C(i))
120*890232f2SAndroid Build Coastguard Worker            else:
121*890232f2SAndroid Build Coastguard Worker                self.c = nestedStruct.CAsNumpy()
122*890232f2SAndroid Build Coastguard Worker        if not nestedStruct.DIsNone():
123*890232f2SAndroid Build Coastguard Worker            if np is None:
124*890232f2SAndroid Build Coastguard Worker                self.d = []
125*890232f2SAndroid Build Coastguard Worker                for i in range(nestedStruct.DLength()):
126*890232f2SAndroid Build Coastguard Worker                    self.d.append(nestedStruct.D(i))
127*890232f2SAndroid Build Coastguard Worker            else:
128*890232f2SAndroid Build Coastguard Worker                self.d = nestedStruct.DAsNumpy()
129*890232f2SAndroid Build Coastguard Worker
130*890232f2SAndroid Build Coastguard Worker    # NestedStructT
131*890232f2SAndroid Build Coastguard Worker    def Pack(self, builder):
132*890232f2SAndroid Build Coastguard Worker        return CreateNestedStruct(builder, self.a, self.b, self.c, self.d)
133