fixed comparator for native_inline (#7076)

* fixed comparator for native_inline

* added native_inline data

* updated more tests for the new field

* more fixes
This commit is contained in:
Derek Bailey
2022-02-02 23:44:43 -08:00
committed by GitHub
parent 826193ff68
commit 39c8a19ce2
26 changed files with 937 additions and 636 deletions

View File

@@ -210,6 +210,7 @@ public struct Monster : IFlatbufferObject
public MyGame.Example.Stat? ScalarKeySortedTables(int j) { int o = __p.__offset(104); return o != 0 ? (MyGame.Example.Stat?)(new MyGame.Example.Stat()).__assign(__p.__indirect(__p.__vector(o) + j * 4), __p.bb) : null; }
public int ScalarKeySortedTablesLength { get { int o = __p.__offset(104); return o != 0 ? __p.__vector_len(o) : 0; } }
public MyGame.Example.Stat? ScalarKeySortedTablesByKey(ushort key) { int o = __p.__offset(104); return o != 0 ? MyGame.Example.Stat.__lookup_by_key(__p.__vector(o), key, __p.bb) : null; }
public MyGame.Example.Test? NativeInline { get { int o = __p.__offset(106); return o != 0 ? (MyGame.Example.Test?)(new MyGame.Example.Test()).__assign(o + __p.bb_pos, __p.bb) : null; } }
public static Offset<MyGame.Example.Monster> CreateMonster(FlatBufferBuilder builder,
MyGame.Example.Vec3T pos = null,
@@ -261,8 +262,9 @@ public struct Monster : IFlatbufferObject
VectorOffset vector_of_enumsOffset = default(VectorOffset),
MyGame.Example.Race signed_enum = MyGame.Example.Race.None,
VectorOffset testrequirednestedflatbufferOffset = default(VectorOffset),
VectorOffset scalar_key_sorted_tablesOffset = default(VectorOffset)) {
builder.StartTable(51);
VectorOffset scalar_key_sorted_tablesOffset = default(VectorOffset),
MyGame.Example.TestT native_inline = null) {
builder.StartTable(52);
Monster.AddNonOwningReference(builder, non_owning_reference);
Monster.AddCoOwningReference(builder, co_owning_reference);
Monster.AddSingleWeakReference(builder, single_weak_reference);
@@ -270,6 +272,7 @@ public struct Monster : IFlatbufferObject
Monster.AddTesthashs64Fnv1a(builder, testhashs64_fnv1a);
Monster.AddTesthashu64Fnv1(builder, testhashu64_fnv1);
Monster.AddTesthashs64Fnv1(builder, testhashs64_fnv1);
Monster.AddNativeInline(builder, MyGame.Example.Test.Pack(builder, native_inline));
Monster.AddScalarKeySortedTables(builder, scalar_key_sorted_tablesOffset);
Monster.AddTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset);
Monster.AddVectorOfEnums(builder, vector_of_enumsOffset);
@@ -316,7 +319,7 @@ public struct Monster : IFlatbufferObject
return Monster.EndMonster(builder);
}
public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(51); }
public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(52); }
public static void AddPos(FlatBufferBuilder builder, Offset<MyGame.Example.Vec3> posOffset) { builder.AddStruct(0, posOffset.Value, 0); }
public static void AddMana(FlatBufferBuilder builder, short mana) { builder.AddShort(1, mana, 150); }
public static void AddHp(FlatBufferBuilder builder, short hp) { builder.AddShort(2, hp, 100); }
@@ -421,6 +424,7 @@ public struct Monster : IFlatbufferObject
public static VectorOffset CreateScalarKeySortedTablesVector(FlatBufferBuilder builder, Offset<MyGame.Example.Stat>[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); }
public static VectorOffset CreateScalarKeySortedTablesVectorBlock(FlatBufferBuilder builder, Offset<MyGame.Example.Stat>[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); }
public static void StartScalarKeySortedTablesVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
public static void AddNativeInline(FlatBufferBuilder builder, Offset<MyGame.Example.Test> nativeInlineOffset) { builder.AddStruct(51, nativeInlineOffset.Value, 0); }
public static Offset<MyGame.Example.Monster> EndMonster(FlatBufferBuilder builder) {
int o = builder.EndTable();
builder.Required(o, 10); // name
@@ -566,6 +570,7 @@ public struct Monster : IFlatbufferObject
for (var _j = 0; _j < this.TestrequirednestedflatbufferLength; ++_j) {_o.Testrequirednestedflatbuffer.Add(this.Testrequirednestedflatbuffer(_j));}
_o.ScalarKeySortedTables = new List<MyGame.Example.StatT>();
for (var _j = 0; _j < this.ScalarKeySortedTablesLength; ++_j) {_o.ScalarKeySortedTables.Add(this.ScalarKeySortedTables(_j).HasValue ? this.ScalarKeySortedTables(_j).Value.UnPack() : null);}
_o.NativeInline = this.NativeInline.HasValue ? this.NativeInline.Value.UnPack() : null;
}
public static Offset<MyGame.Example.Monster> Pack(FlatBufferBuilder builder, MonsterT _o) {
if (_o == null) return default(Offset<MyGame.Example.Monster>);
@@ -739,7 +744,8 @@ public struct Monster : IFlatbufferObject
_vector_of_enums,
_o.SignedEnum,
_testrequirednestedflatbuffer,
_scalar_key_sorted_tables);
_scalar_key_sorted_tables,
_o.NativeInline);
}
}
@@ -886,6 +892,8 @@ public class MonsterT
public List<byte> Testrequirednestedflatbuffer { get; set; }
[Newtonsoft.Json.JsonProperty("scalar_key_sorted_tables")]
public List<MyGame.Example.StatT> ScalarKeySortedTables { get; set; }
[Newtonsoft.Json.JsonProperty("native_inline")]
public MyGame.Example.TestT NativeInline { get; set; }
public MonsterT() {
this.Pos = new MyGame.Example.Vec3T();
@@ -935,6 +943,7 @@ public class MonsterT
this.SignedEnum = MyGame.Example.Race.None;
this.Testrequirednestedflatbuffer = null;
this.ScalarKeySortedTables = null;
this.NativeInline = new MyGame.Example.TestT();
}
public static MonsterT DeserializeFromJson(string jsonText) {

View File

@@ -57,6 +57,7 @@ type MonsterT struct {
SignedEnum Race
Testrequirednestedflatbuffer []byte
ScalarKeySortedTables []*StatT
NativeInline *TestT
}
func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
@@ -313,6 +314,8 @@ func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
MonsterAddSignedEnum(builder, t.SignedEnum)
MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset)
MonsterAddScalarKeySortedTables(builder, scalarKeySortedTablesOffset)
nativeInlineOffset := t.NativeInline.Pack(builder)
MonsterAddNativeInline(builder, nativeInlineOffset)
return MonsterEnd(builder)
}
@@ -451,6 +454,7 @@ func (rcv *Monster) UnPackTo(t *MonsterT) {
rcv.ScalarKeySortedTables(&x, j)
t.ScalarKeySortedTables[j] = x.UnPack()
}
t.NativeInline = rcv.NativeInline(nil).UnPack()
}
func (rcv *Monster) UnPack() *MonsterT {
@@ -1339,8 +1343,21 @@ func (rcv *Monster) ScalarKeySortedTablesLength() int {
return 0
}
func (rcv *Monster) NativeInline(obj *Test) *Test {
o := flatbuffers.UOffsetT(rcv._tab.Offset(106))
if o != 0 {
x := o + rcv._tab.Pos
if obj == nil {
obj = new(Test)
}
obj.Init(rcv._tab.Bytes, x)
return obj
}
return nil
}
func MonsterStart(builder *flatbuffers.Builder) {
builder.StartObject(51)
builder.StartObject(52)
}
func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) {
builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0)
@@ -1552,6 +1569,9 @@ func MonsterAddScalarKeySortedTables(builder *flatbuffers.Builder, scalarKeySort
func MonsterStartScalarKeySortedTablesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func MonsterAddNativeInline(builder *flatbuffers.Builder, nativeInline flatbuffers.UOffsetT) {
builder.PrependStructSlot(51, flatbuffers.UOffsetT(nativeInline), 0)
}
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
return builder.EndObject()
}

View File

@@ -210,8 +210,10 @@ public final class Monster extends Table {
public MyGame.Example.Stat scalarKeySortedTablesByKey(MyGame.Example.Stat obj, int key) { int o = __offset(104); return o != 0 ? MyGame.Example.Stat.__lookup_by_key(obj, __vector(o), key, bb) : null; }
public MyGame.Example.Stat.Vector scalarKeySortedTablesVector() { return scalarKeySortedTablesVector(new MyGame.Example.Stat.Vector()); }
public MyGame.Example.Stat.Vector scalarKeySortedTablesVector(MyGame.Example.Stat.Vector obj) { int o = __offset(104); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
public MyGame.Example.Test nativeInline() { return nativeInline(new MyGame.Example.Test()); }
public MyGame.Example.Test nativeInline(MyGame.Example.Test obj) { int o = __offset(106); return o != 0 ? obj.__assign(o + bb_pos, bb) : null; }
public static void startMonster(FlatBufferBuilder builder) { builder.startTable(51); }
public static void startMonster(FlatBufferBuilder builder) { builder.startTable(52); }
public static void addPos(FlatBufferBuilder builder, int posOffset) { builder.addStruct(0, posOffset, 0); }
public static void addMana(FlatBufferBuilder builder, short mana) { builder.addShort(1, mana, 150); }
public static void addHp(FlatBufferBuilder builder, short hp) { builder.addShort(2, hp, 100); }
@@ -304,6 +306,7 @@ public final class Monster extends Table {
public static void addScalarKeySortedTables(FlatBufferBuilder builder, int scalarKeySortedTablesOffset) { builder.addOffset(50, scalarKeySortedTablesOffset, 0); }
public static int createScalarKeySortedTablesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
public static void startScalarKeySortedTablesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
public static void addNativeInline(FlatBufferBuilder builder, int nativeInlineOffset) { builder.addStruct(51, nativeInlineOffset, 0); }
public static int endMonster(FlatBufferBuilder builder) {
int o = builder.endTable();
builder.required(o, 10); // name
@@ -518,6 +521,8 @@ public final class Monster extends Table {
MyGame.Example.StatT[] _oScalarKeySortedTables = new MyGame.Example.StatT[scalarKeySortedTablesLength()];
for (int _j = 0; _j < scalarKeySortedTablesLength(); ++_j) {_oScalarKeySortedTables[_j] = (scalarKeySortedTables(_j) != null ? scalarKeySortedTables(_j).unpack() : null);}
_o.setScalarKeySortedTables(_oScalarKeySortedTables);
if (nativeInline() != null) nativeInline().unpackTo(_o.getNativeInline());
else _o.setNativeInline(null);
}
public static int pack(FlatBufferBuilder builder, MonsterT _o) {
if (_o == null) return 0;
@@ -704,6 +709,7 @@ public final class Monster extends Table {
addSignedEnum(builder, _o.getSignedEnum());
addTestrequirednestedflatbuffer(builder, _testrequirednestedflatbuffer);
addScalarKeySortedTables(builder, _scalarKeySortedTables);
addNativeInline(builder, MyGame.Example.Test.pack(builder, _o.getNativeInline()));
return endMonster(builder);
}
}

View File

@@ -834,6 +834,15 @@ class Monster : Table() {
null
}
}
val nativeInline : MyGame.Example.Test? get() = nativeInline(MyGame.Example.Test())
fun nativeInline(obj: MyGame.Example.Test) : MyGame.Example.Test? {
val o = __offset(106)
return if (o != 0) {
obj.__assign(o + bb_pos, bb)
} else {
null
}
}
override fun keysCompare(o1: Int, o2: Int, _bb: ByteBuffer) : Int {
return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb)
}
@@ -845,7 +854,7 @@ class Monster : Table() {
return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb))
}
fun MonsterBufferHasIdentifier(_bb: ByteBuffer) : Boolean = __has_identifier(_bb, "MONS")
fun startMonster(builder: FlatBufferBuilder) = builder.startTable(51)
fun startMonster(builder: FlatBufferBuilder) = builder.startTable(52)
fun addPos(builder: FlatBufferBuilder, pos: Int) = builder.addStruct(0, pos, 0)
fun addMana(builder: FlatBufferBuilder, mana: Short) = builder.addShort(1, mana, 150)
fun addHp(builder: FlatBufferBuilder, hp: Short) = builder.addShort(2, hp, 100)
@@ -1035,6 +1044,7 @@ class Monster : Table() {
return builder.endVector()
}
fun startScalarKeySortedTablesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4)
fun addNativeInline(builder: FlatBufferBuilder, nativeInline: Int) = builder.addStruct(51, nativeInline, 0)
fun endMonster(builder: FlatBufferBuilder) : Int {
val o = builder.endTable()
builder.required(o, 10)

View File

@@ -677,8 +677,18 @@ function mt:ScalarKeySortedTablesLength()
return 0
end
function mt:NativeInline()
local o = self.view:Offset(106)
if o ~= 0 then
local x = self.view.pos + o
local obj = __MyGame_Example_Test.New()
obj:Init(self.view.bytes, x)
return obj
end
end
function Monster.Start(builder)
builder:StartObject(51)
builder:StartObject(52)
end
function Monster.AddPos(builder, pos)
@@ -961,6 +971,10 @@ function Monster.StartScalarKeySortedTablesVector(builder, numElems)
return builder:StartVector(4, numElems, 4)
end
function Monster.AddNativeInline(builder, nativeInline)
builder:PrependStructSlot(51, nativeInline, 0)
end
function Monster.End(builder)
return builder:EndObject()
end

View File

@@ -729,22 +729,29 @@ class Monster extends Table
return $o != 0 ? $this->__vector_len($o) : 0;
}
public function getNativeInline()
{
$obj = new Test();
$o = $this->__offset(106);
return $o != 0 ? $obj->init($o + $this->bb_pos, $this->bb) : 0;
}
/**
* @param FlatBufferBuilder $builder
* @return void
*/
public static function startMonster(FlatBufferBuilder $builder)
{
$builder->StartObject(51);
$builder->StartObject(52);
}
/**
* @param FlatBufferBuilder $builder
* @return Monster
*/
public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $hp, $name, $inventory, $color, $test_type, $test, $test4, $testarrayofstring, $testarrayoftables, $enemy, $testnestedflatbuffer, $testempty, $testbool, $testhashs32_fnv1, $testhashu32_fnv1, $testhashs64_fnv1, $testhashu64_fnv1, $testhashs32_fnv1a, $testhashu32_fnv1a, $testhashs64_fnv1a, $testhashu64_fnv1a, $testarrayofbools, $testf, $testf2, $testf3, $testarrayofstring2, $testarrayofsortedstruct, $flex, $test5, $vector_of_longs, $vector_of_doubles, $parent_namespace_test, $vector_of_referrables, $single_weak_reference, $vector_of_weak_references, $vector_of_strong_referrables, $co_owning_reference, $vector_of_co_owning_references, $non_owning_reference, $vector_of_non_owning_references, $any_unique_type, $any_unique, $any_ambiguous_type, $any_ambiguous, $vector_of_enums, $signed_enum, $testrequirednestedflatbuffer, $scalar_key_sorted_tables)
public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $hp, $name, $inventory, $color, $test_type, $test, $test4, $testarrayofstring, $testarrayoftables, $enemy, $testnestedflatbuffer, $testempty, $testbool, $testhashs32_fnv1, $testhashu32_fnv1, $testhashs64_fnv1, $testhashu64_fnv1, $testhashs32_fnv1a, $testhashu32_fnv1a, $testhashs64_fnv1a, $testhashu64_fnv1a, $testarrayofbools, $testf, $testf2, $testf3, $testarrayofstring2, $testarrayofsortedstruct, $flex, $test5, $vector_of_longs, $vector_of_doubles, $parent_namespace_test, $vector_of_referrables, $single_weak_reference, $vector_of_weak_references, $vector_of_strong_referrables, $co_owning_reference, $vector_of_co_owning_references, $non_owning_reference, $vector_of_non_owning_references, $any_unique_type, $any_unique, $any_ambiguous_type, $any_ambiguous, $vector_of_enums, $signed_enum, $testrequirednestedflatbuffer, $scalar_key_sorted_tables, $native_inline)
{
$builder->startObject(51);
$builder->startObject(52);
self::addPos($builder, $pos);
self::addMana($builder, $mana);
self::addHp($builder, $hp);
@@ -795,6 +802,7 @@ class Monster extends Table
self::addSignedEnum($builder, $signed_enum);
self::addTestrequirednestedflatbuffer($builder, $testrequirednestedflatbuffer);
self::addScalarKeySortedTables($builder, $scalar_key_sorted_tables);
self::addNativeInline($builder, $native_inline);
$o = $builder->endObject();
$builder->required($o, 10); // name
return $o;
@@ -1765,6 +1773,16 @@ class Monster extends Table
$builder->startVector(4, $numElems, 4);
}
/**
* @param FlatBufferBuilder $builder
* @param int
* @return void
*/
public static function addNativeInline(FlatBufferBuilder $builder, $nativeInline)
{
$builder->addStructX(51, $nativeInline, 0);
}
/**
* @param FlatBufferBuilder $builder
* @return int table offset

View File

@@ -791,7 +791,18 @@ class Monster(object):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(104))
return o == 0
def MonsterStart(builder): builder.StartObject(51)
# Monster
def NativeInline(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(106))
if o != 0:
x = o + self._tab.Pos
from MyGame.Example.Test import Test
obj = Test()
obj.Init(self._tab.Bytes, x)
return obj
return None
def MonsterStart(builder): builder.StartObject(52)
def Start(builder):
return MonsterStart(builder)
def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0)
@@ -1018,6 +1029,9 @@ def AddScalarKeySortedTables(builder, scalarKeySortedTables):
def MonsterStartScalarKeySortedTablesVector(builder, numElems): return builder.StartVector(4, numElems, 4)
def StartScalarKeySortedTablesVector(builder, numElems):
return MonsterStartScalarKeySortedTablesVector(builder, numElems)
def MonsterAddNativeInline(builder, nativeInline): builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0)
def AddNativeInline(builder, nativeInline):
return MonsterAddNativeInline(builder, nativeInline)
def MonsterEnd(builder): return builder.EndObject()
def End(builder):
return MonsterEnd(builder)
@@ -1091,6 +1105,7 @@ class MonsterT(object):
self.signedEnum = -1 # type: int
self.testrequirednestedflatbuffer = None # type: List[int]
self.scalarKeySortedTables = None # type: List[MyGame.Example.Stat.StatT]
self.nativeInline = None # type: Optional[MyGame.Example.Test.TestT]
@classmethod
def InitFromBuf(cls, buf, pos):
@@ -1283,6 +1298,8 @@ class MonsterT(object):
else:
stat_ = MyGame.Example.Stat.StatT.InitFromObj(monster.ScalarKeySortedTables(i))
self.scalarKeySortedTables.append(stat_)
if monster.NativeInline() is not None:
self.nativeInline = MyGame.Example.Test.TestT.InitFromObj(monster.NativeInline())
# MonsterT
def Pack(self, builder):
@@ -1531,5 +1548,8 @@ class MonsterT(object):
MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer)
if self.scalarKeySortedTables is not None:
MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables)
if self.nativeInline is not None:
nativeInline = self.nativeInline.Pack(builder)
MonsterAddNativeInline(builder, nativeInline)
monster = MonsterEnd(builder)
return monster

View File

@@ -55,6 +55,7 @@ public class MonsterT {
private byte signedEnum;
private int[] testrequirednestedflatbuffer;
private MyGame.Example.StatT[] scalarKeySortedTables;
private MyGame.Example.TestT nativeInline;
public MyGame.Example.Vec3T getPos() { return pos; }
@@ -244,6 +245,10 @@ public class MonsterT {
public void setScalarKeySortedTables(MyGame.Example.StatT[] scalarKeySortedTables) { this.scalarKeySortedTables = scalarKeySortedTables; }
public MyGame.Example.TestT getNativeInline() { return nativeInline; }
public void setNativeInline(MyGame.Example.TestT nativeInline) { this.nativeInline = nativeInline; }
public MonsterT() {
this.pos = new MyGame.Example.Vec3T();
@@ -293,6 +298,7 @@ public class MonsterT {
this.signedEnum = -1;
this.testrequirednestedflatbuffer = null;
this.scalarKeySortedTables = null;
this.nativeInline = new MyGame.Example.TestT();
}
public static MonsterT deserializeFromBinary(byte[] fbBuffer) {
return Monster.getRootAsMonster(ByteBuffer.wrap(fbBuffer)).unpack();