mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-07 05:47:36 +00:00
[Python] Fixed the issue with nested unions relying on InitFromBuf. (#7576)
* feat: Fixed the issue with nested unions relying on InitFromBuf. Problem: Issue #7569 Nested Unions were broken with the introduction of parsing buffers with an initial encoding offset. Fix: Revert the InitFromBuf method to the previous version and introduction of InitFromPackedBuf that allows users to read types from packed buffers applying the offset automatically. Test: Added in TestNestedUnionTables to test the encoding and decoding ability using a nested table with a union field. * fix: Uncommented generate code command
This commit is contained in:
20
tests/MyGame/Example/NestedUnion/Any.py
Normal file
20
tests/MyGame/Example/NestedUnion/Any.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
# namespace: NestedUnion
|
||||
|
||||
class Any(object):
|
||||
NONE = 0
|
||||
Vec3 = 1
|
||||
TestSimpleTableWithEnum = 2
|
||||
|
||||
def AnyCreator(unionType, table):
|
||||
from flatbuffers.table import Table
|
||||
if not isinstance(table, Table):
|
||||
return None
|
||||
if unionType == Any().Vec3:
|
||||
import MyGame.Example.NestedUnion.Vec3
|
||||
return MyGame.Example.NestedUnion.Vec3.Vec3T.InitFromBuf(table.Bytes, table.Pos)
|
||||
if unionType == Any().TestSimpleTableWithEnum:
|
||||
import MyGame.Example.NestedUnion.TestSimpleTableWithEnum
|
||||
return MyGame.Example.NestedUnion.TestSimpleTableWithEnum.TestSimpleTableWithEnumT.InitFromBuf(table.Bytes, table.Pos)
|
||||
return None
|
||||
Reference in New Issue
Block a user