| # automatically generated by the FlatBuffers compiler, do not modify |
| |
| # namespace: union_name_test |
| |
| import flatbuffers |
| from flatbuffers.compat import import_numpy |
| np = import_numpy() |
| |
| class Container(object): |
| __slots__ = ['_tab'] |
| |
| @classmethod |
| def GetRootAs(cls, buf, offset=0): |
| n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) |
| x = Container() |
| x.Init(buf, n + offset) |
| return x |
| |
| @classmethod |
| def GetRootAsContainer(cls, buf, offset=0): |
| """This method is deprecated. Please switch to GetRootAs.""" |
| return cls.GetRootAs(buf, offset) |
| # Container |
| def Init(self, buf, pos): |
| self._tab = flatbuffers.table.Table(buf, pos) |
| |
| # Container |
| def UType(self): |
| o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) |
| if o != 0: |
| return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos) |
| return 0 |
| |
| # Container |
| def U(self): |
| o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) |
| if o != 0: |
| from flatbuffers.table import Table |
| obj = Table(bytearray(), 0) |
| self._tab.Union(obj, o) |
| return obj |
| return None |
| |
| def ContainerStart(builder): |
| builder.StartObject(2) |
| |
| def Start(builder): |
| ContainerStart(builder) |
| |
| def ContainerAddUType(builder, uType): |
| builder.PrependUint8Slot(0, uType, 0) |
| |
| def AddUType(builder, uType): |
| ContainerAddUType(builder, uType) |
| |
| def ContainerAddU(builder, u): |
| builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(u), 0) |
| |
| def AddU(builder, u): |
| ContainerAddU(builder, u) |
| |
| def ContainerEnd(builder): |
| return builder.EndObject() |
| |
| def End(builder): |
| return ContainerEnd(builder) |
| |
| import union_name_test.Bar |
| import union_name_test.Foo |
| import union_name_test.my_test_union |
| try: |
| from typing import Union |
| except: |
| pass |
| |
| class ContainerT(object): |
| |
| # ContainerT |
| def __init__( |
| self, |
| uType = 0, |
| u = None, |
| ): |
| self.uType = uType # type: int |
| self.u = u # type: Union[None, 'union_name_test.Foo.FooT', 'union_name_test.Bar.BarT'] |
| |
| @classmethod |
| def InitFromBuf(cls, buf, pos): |
| container = Container() |
| container.Init(buf, pos) |
| return cls.InitFromObj(container) |
| |
| @classmethod |
| def InitFromPackedBuf(cls, buf, pos=0): |
| n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos) |
| return cls.InitFromBuf(buf, pos+n) |
| |
| @classmethod |
| def InitFromObj(cls, container): |
| x = ContainerT() |
| x._UnPack(container) |
| return x |
| |
| # ContainerT |
| def _UnPack(self, container): |
| if container is None: |
| return |
| self.uType = container.UType() |
| self.u = union_name_test.my_test_union.MyTestUnionCreator(self.uType, container.U()) |
| |
| # ContainerT |
| def Pack(self, builder): |
| if self.u is not None: |
| u = self.u.Pack(builder) |
| ContainerStart(builder) |
| ContainerAddUType(builder, self.uType) |
| if self.u is not None: |
| ContainerAddU(builder, u) |
| container = ContainerEnd(builder) |
| return container |