mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-15 08:48:52 +00:00
Fix 64-bit numeric enum values in typescript (#7135)
* Fix 64-bit default numeric enum values in typescript If you had a default value that wasn't a valid enum value (e.g., a zero if you used a bit_flag setting, like you get with AdvancedFeatures in reflection.fbs), we weren't using BigInt. * Run generate_code.py * [DART] Handle deprecated fields & invalid enum defaults * Update .NET test
This commit is contained in:
18
tests/MyGame/Example/LongEnum.cs
Normal file
18
tests/MyGame/Example/LongEnum.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
// <auto-generated>
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
// </auto-generated>
|
||||
|
||||
namespace MyGame.Example
|
||||
{
|
||||
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
|
||||
[System.FlagsAttribute]
|
||||
public enum LongEnum : ulong
|
||||
{
|
||||
LongOne = 2,
|
||||
LongTwo = 4,
|
||||
LongBig = 1099511627776,
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
32
tests/MyGame/Example/LongEnum.go
Normal file
32
tests/MyGame/Example/LongEnum.go
Normal file
@@ -0,0 +1,32 @@
|
||||
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
||||
|
||||
package Example
|
||||
|
||||
import "strconv"
|
||||
|
||||
type LongEnum uint64
|
||||
|
||||
const (
|
||||
LongEnumLongOne LongEnum = 2
|
||||
LongEnumLongTwo LongEnum = 4
|
||||
LongEnumLongBig LongEnum = 1099511627776
|
||||
)
|
||||
|
||||
var EnumNamesLongEnum = map[LongEnum]string{
|
||||
LongEnumLongOne: "LongOne",
|
||||
LongEnumLongTwo: "LongTwo",
|
||||
LongEnumLongBig: "LongBig",
|
||||
}
|
||||
|
||||
var EnumValuesLongEnum = map[string]LongEnum{
|
||||
"LongOne": LongEnumLongOne,
|
||||
"LongTwo": LongEnumLongTwo,
|
||||
"LongBig": LongEnumLongBig,
|
||||
}
|
||||
|
||||
func (v LongEnum) String() string {
|
||||
if s, ok := EnumNamesLongEnum[v]; ok {
|
||||
return s
|
||||
}
|
||||
return "LongEnum(" + strconv.FormatInt(int64(v), 10) + ")"
|
||||
}
|
||||
12
tests/MyGame/Example/LongEnum.java
Normal file
12
tests/MyGame/Example/LongEnum.java
Normal file
@@ -0,0 +1,12 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
package MyGame.Example;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class LongEnum {
|
||||
private LongEnum() { }
|
||||
public static final long LongOne = 2;
|
||||
public static final long LongTwo = 4;
|
||||
public static final long LongBig = 1099511627776;
|
||||
}
|
||||
|
||||
12
tests/MyGame/Example/LongEnum.kt
Normal file
12
tests/MyGame/Example/LongEnum.kt
Normal file
@@ -0,0 +1,12 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
package MyGame.Example
|
||||
|
||||
@Suppress("unused")
|
||||
class LongEnum private constructor() {
|
||||
companion object {
|
||||
const val LongOne: ULong = 2UL
|
||||
const val LongTwo: ULong = 4UL
|
||||
const val LongBig: ULong = 1099511627776UL
|
||||
}
|
||||
}
|
||||
19
tests/MyGame/Example/LongEnum.lua
Normal file
19
tests/MyGame/Example/LongEnum.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
--[[ MyGame.Example.LongEnum
|
||||
|
||||
Automatically generated by the FlatBuffers compiler, do not modify.
|
||||
Or modify. I'm a message, not a cop.
|
||||
|
||||
flatc version: 2.0.6
|
||||
|
||||
Declared by : //monster_test.fbs
|
||||
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
|
||||
|
||||
--]]
|
||||
|
||||
local LongEnum = {
|
||||
LongOne = 2,
|
||||
LongTwo = 4,
|
||||
LongBig = 1099511627776,
|
||||
}
|
||||
|
||||
return LongEnum
|
||||
25
tests/MyGame/Example/LongEnum.php
Normal file
25
tests/MyGame/Example/LongEnum.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
namespace MyGame\Example;
|
||||
|
||||
class LongEnum
|
||||
{
|
||||
const LongOne = 2;
|
||||
const LongTwo = 4;
|
||||
const LongBig = 1099511627776;
|
||||
|
||||
private static $names = array(
|
||||
LongEnum::LongOne=>"LongOne",
|
||||
LongEnum::LongTwo=>"LongTwo",
|
||||
LongEnum::LongBig=>"LongBig",
|
||||
);
|
||||
|
||||
public static function Name($e)
|
||||
{
|
||||
if (!isset(self::$names[$e])) {
|
||||
throw new \Exception();
|
||||
}
|
||||
return self::$names[$e];
|
||||
}
|
||||
}
|
||||
8
tests/MyGame/Example/LongEnum.py
Normal file
8
tests/MyGame/Example/LongEnum.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
# namespace: Example
|
||||
|
||||
class LongEnum(object):
|
||||
LongOne = 2
|
||||
LongTwo = 4
|
||||
LongBig = 1099511627776
|
||||
@@ -211,6 +211,10 @@ public struct Monster : IFlatbufferObject
|
||||
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 MyGame.Example.LongEnum LongEnumNonEnumDefault { get { int o = __p.__offset(108); return o != 0 ? (MyGame.Example.LongEnum)__p.bb.GetUlong(o + __p.bb_pos) : 0; } }
|
||||
public bool MutateLongEnumNonEnumDefault(MyGame.Example.LongEnum long_enum_non_enum_default) { int o = __p.__offset(108); if (o != 0) { __p.bb.PutUlong(o + __p.bb_pos, (ulong)long_enum_non_enum_default); return true; } else { return false; } }
|
||||
public MyGame.Example.LongEnum LongEnumNormalDefault { get { int o = __p.__offset(110); return o != 0 ? (MyGame.Example.LongEnum)__p.bb.GetUlong(o + __p.bb_pos) : MyGame.Example.LongEnum.LongOne; } }
|
||||
public bool MutateLongEnumNormalDefault(MyGame.Example.LongEnum long_enum_normal_default) { int o = __p.__offset(110); if (o != 0) { __p.bb.PutUlong(o + __p.bb_pos, (ulong)long_enum_normal_default); return true; } else { return false; } }
|
||||
|
||||
public static Offset<MyGame.Example.Monster> CreateMonster(FlatBufferBuilder builder,
|
||||
MyGame.Example.Vec3T pos = null,
|
||||
@@ -263,8 +267,12 @@ public struct Monster : IFlatbufferObject
|
||||
MyGame.Example.Race signed_enum = MyGame.Example.Race.None,
|
||||
VectorOffset testrequirednestedflatbufferOffset = default(VectorOffset),
|
||||
VectorOffset scalar_key_sorted_tablesOffset = default(VectorOffset),
|
||||
MyGame.Example.TestT native_inline = null) {
|
||||
builder.StartTable(52);
|
||||
MyGame.Example.TestT native_inline = null,
|
||||
MyGame.Example.LongEnum long_enum_non_enum_default = 0,
|
||||
MyGame.Example.LongEnum long_enum_normal_default = MyGame.Example.LongEnum.LongOne) {
|
||||
builder.StartTable(54);
|
||||
Monster.AddLongEnumNormalDefault(builder, long_enum_normal_default);
|
||||
Monster.AddLongEnumNonEnumDefault(builder, long_enum_non_enum_default);
|
||||
Monster.AddNonOwningReference(builder, non_owning_reference);
|
||||
Monster.AddCoOwningReference(builder, co_owning_reference);
|
||||
Monster.AddSingleWeakReference(builder, single_weak_reference);
|
||||
@@ -319,7 +327,7 @@ public struct Monster : IFlatbufferObject
|
||||
return Monster.EndMonster(builder);
|
||||
}
|
||||
|
||||
public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(52); }
|
||||
public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(54); }
|
||||
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); }
|
||||
@@ -425,6 +433,8 @@ public struct Monster : IFlatbufferObject
|
||||
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 void AddLongEnumNonEnumDefault(FlatBufferBuilder builder, MyGame.Example.LongEnum longEnumNonEnumDefault) { builder.AddUlong(52, (ulong)longEnumNonEnumDefault, 0); }
|
||||
public static void AddLongEnumNormalDefault(FlatBufferBuilder builder, MyGame.Example.LongEnum longEnumNormalDefault) { builder.AddUlong(53, (ulong)longEnumNormalDefault, 2); }
|
||||
public static Offset<MyGame.Example.Monster> EndMonster(FlatBufferBuilder builder) {
|
||||
int o = builder.EndTable();
|
||||
builder.Required(o, 10); // name
|
||||
@@ -571,6 +581,8 @@ public struct Monster : IFlatbufferObject
|
||||
_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;
|
||||
_o.LongEnumNonEnumDefault = this.LongEnumNonEnumDefault;
|
||||
_o.LongEnumNormalDefault = this.LongEnumNormalDefault;
|
||||
}
|
||||
public static Offset<MyGame.Example.Monster> Pack(FlatBufferBuilder builder, MonsterT _o) {
|
||||
if (_o == null) return default(Offset<MyGame.Example.Monster>);
|
||||
@@ -745,7 +757,9 @@ public struct Monster : IFlatbufferObject
|
||||
_o.SignedEnum,
|
||||
_testrequirednestedflatbuffer,
|
||||
_scalar_key_sorted_tables,
|
||||
_o.NativeInline);
|
||||
_o.NativeInline,
|
||||
_o.LongEnumNonEnumDefault,
|
||||
_o.LongEnumNormalDefault);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -894,6 +908,10 @@ public class MonsterT
|
||||
public List<MyGame.Example.StatT> ScalarKeySortedTables { get; set; }
|
||||
[Newtonsoft.Json.JsonProperty("native_inline")]
|
||||
public MyGame.Example.TestT NativeInline { get; set; }
|
||||
[Newtonsoft.Json.JsonProperty("long_enum_non_enum_default")]
|
||||
public MyGame.Example.LongEnum LongEnumNonEnumDefault { get; set; }
|
||||
[Newtonsoft.Json.JsonProperty("long_enum_normal_default")]
|
||||
public MyGame.Example.LongEnum LongEnumNormalDefault { get; set; }
|
||||
|
||||
public MonsterT() {
|
||||
this.Pos = new MyGame.Example.Vec3T();
|
||||
@@ -944,6 +962,8 @@ public class MonsterT
|
||||
this.Testrequirednestedflatbuffer = null;
|
||||
this.ScalarKeySortedTables = null;
|
||||
this.NativeInline = new MyGame.Example.TestT();
|
||||
this.LongEnumNonEnumDefault = 0;
|
||||
this.LongEnumNormalDefault = MyGame.Example.LongEnum.LongOne;
|
||||
}
|
||||
|
||||
public static MonsterT DeserializeFromJson(string jsonText) {
|
||||
|
||||
@@ -58,6 +58,8 @@ type MonsterT struct {
|
||||
Testrequirednestedflatbuffer []byte
|
||||
ScalarKeySortedTables []*StatT
|
||||
NativeInline *TestT
|
||||
LongEnumNonEnumDefault LongEnum
|
||||
LongEnumNormalDefault LongEnum
|
||||
}
|
||||
|
||||
func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
@@ -316,6 +318,8 @@ func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
MonsterAddScalarKeySortedTables(builder, scalarKeySortedTablesOffset)
|
||||
nativeInlineOffset := t.NativeInline.Pack(builder)
|
||||
MonsterAddNativeInline(builder, nativeInlineOffset)
|
||||
MonsterAddLongEnumNonEnumDefault(builder, t.LongEnumNonEnumDefault)
|
||||
MonsterAddLongEnumNormalDefault(builder, t.LongEnumNormalDefault)
|
||||
return MonsterEnd(builder)
|
||||
}
|
||||
|
||||
@@ -455,6 +459,8 @@ func (rcv *Monster) UnPackTo(t *MonsterT) {
|
||||
t.ScalarKeySortedTables[j] = x.UnPack()
|
||||
}
|
||||
t.NativeInline = rcv.NativeInline(nil).UnPack()
|
||||
t.LongEnumNonEnumDefault = rcv.LongEnumNonEnumDefault()
|
||||
t.LongEnumNormalDefault = rcv.LongEnumNormalDefault()
|
||||
}
|
||||
|
||||
func (rcv *Monster) UnPack() *MonsterT {
|
||||
@@ -1356,8 +1362,32 @@ func (rcv *Monster) NativeInline(obj *Test) *Test {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *Monster) LongEnumNonEnumDefault() LongEnum {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(108))
|
||||
if o != 0 {
|
||||
return LongEnum(rcv._tab.GetUint64(o + rcv._tab.Pos))
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *Monster) MutateLongEnumNonEnumDefault(n LongEnum) bool {
|
||||
return rcv._tab.MutateUint64Slot(108, uint64(n))
|
||||
}
|
||||
|
||||
func (rcv *Monster) LongEnumNormalDefault() LongEnum {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(110))
|
||||
if o != 0 {
|
||||
return LongEnum(rcv._tab.GetUint64(o + rcv._tab.Pos))
|
||||
}
|
||||
return 2
|
||||
}
|
||||
|
||||
func (rcv *Monster) MutateLongEnumNormalDefault(n LongEnum) bool {
|
||||
return rcv._tab.MutateUint64Slot(110, uint64(n))
|
||||
}
|
||||
|
||||
func MonsterStart(builder *flatbuffers.Builder) {
|
||||
builder.StartObject(52)
|
||||
builder.StartObject(54)
|
||||
}
|
||||
func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) {
|
||||
builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0)
|
||||
@@ -1572,6 +1602,12 @@ func MonsterStartScalarKeySortedTablesVector(builder *flatbuffers.Builder, numEl
|
||||
func MonsterAddNativeInline(builder *flatbuffers.Builder, nativeInline flatbuffers.UOffsetT) {
|
||||
builder.PrependStructSlot(51, flatbuffers.UOffsetT(nativeInline), 0)
|
||||
}
|
||||
func MonsterAddLongEnumNonEnumDefault(builder *flatbuffers.Builder, longEnumNonEnumDefault LongEnum) {
|
||||
builder.PrependUint64Slot(52, uint64(longEnumNonEnumDefault), 0)
|
||||
}
|
||||
func MonsterAddLongEnumNormalDefault(builder *flatbuffers.Builder, longEnumNormalDefault LongEnum) {
|
||||
builder.PrependUint64Slot(53, uint64(longEnumNormalDefault), 2)
|
||||
}
|
||||
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
return builder.EndObject()
|
||||
}
|
||||
|
||||
@@ -212,8 +212,12 @@ public final class Monster extends Table {
|
||||
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 long longEnumNonEnumDefault() { int o = __offset(108); return o != 0 ? bb.getLong(o + bb_pos) : 0L; }
|
||||
public boolean mutateLongEnumNonEnumDefault(long long_enum_non_enum_default) { int o = __offset(108); if (o != 0) { bb.putLong(o + bb_pos, long_enum_non_enum_default); return true; } else { return false; } }
|
||||
public long longEnumNormalDefault() { int o = __offset(110); return o != 0 ? bb.getLong(o + bb_pos) : 2L; }
|
||||
public boolean mutateLongEnumNormalDefault(long long_enum_normal_default) { int o = __offset(110); if (o != 0) { bb.putLong(o + bb_pos, long_enum_normal_default); return true; } else { return false; } }
|
||||
|
||||
public static void startMonster(FlatBufferBuilder builder) { builder.startTable(52); }
|
||||
public static void startMonster(FlatBufferBuilder builder) { builder.startTable(54); }
|
||||
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); }
|
||||
@@ -307,6 +311,8 @@ public final class Monster extends Table {
|
||||
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 void addLongEnumNonEnumDefault(FlatBufferBuilder builder, long longEnumNonEnumDefault) { builder.addLong(52, longEnumNonEnumDefault, 0L); }
|
||||
public static void addLongEnumNormalDefault(FlatBufferBuilder builder, long longEnumNormalDefault) { builder.addLong(53, longEnumNormalDefault, 2L); }
|
||||
public static int endMonster(FlatBufferBuilder builder) {
|
||||
int o = builder.endTable();
|
||||
builder.required(o, 10); // name
|
||||
@@ -523,6 +529,10 @@ public final class Monster extends Table {
|
||||
_o.setScalarKeySortedTables(_oScalarKeySortedTables);
|
||||
if (nativeInline() != null) nativeInline().unpackTo(_o.getNativeInline());
|
||||
else _o.setNativeInline(null);
|
||||
long _oLongEnumNonEnumDefault = longEnumNonEnumDefault();
|
||||
_o.setLongEnumNonEnumDefault(_oLongEnumNonEnumDefault);
|
||||
long _oLongEnumNormalDefault = longEnumNormalDefault();
|
||||
_o.setLongEnumNormalDefault(_oLongEnumNormalDefault);
|
||||
}
|
||||
public static int pack(FlatBufferBuilder builder, MonsterT _o) {
|
||||
if (_o == null) return 0;
|
||||
@@ -710,6 +720,8 @@ public final class Monster extends Table {
|
||||
addTestrequirednestedflatbuffer(builder, _testrequirednestedflatbuffer);
|
||||
addScalarKeySortedTables(builder, _scalarKeySortedTables);
|
||||
addNativeInline(builder, MyGame.Example.Test.pack(builder, _o.getNativeInline()));
|
||||
addLongEnumNonEnumDefault(builder, _o.getLongEnumNonEnumDefault());
|
||||
addLongEnumNormalDefault(builder, _o.getLongEnumNormalDefault());
|
||||
return endMonster(builder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -842,6 +842,34 @@ class Monster : Table() {
|
||||
null
|
||||
}
|
||||
}
|
||||
val longEnumNonEnumDefault : ULong
|
||||
get() {
|
||||
val o = __offset(108)
|
||||
return if(o != 0) bb.getLong(o + bb_pos).toULong() else 0UL
|
||||
}
|
||||
fun mutateLongEnumNonEnumDefault(longEnumNonEnumDefault: ULong) : Boolean {
|
||||
val o = __offset(108)
|
||||
return if (o != 0) {
|
||||
bb.putLong(o + bb_pos, longEnumNonEnumDefault.toLong())
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
val longEnumNormalDefault : ULong
|
||||
get() {
|
||||
val o = __offset(110)
|
||||
return if(o != 0) bb.getLong(o + bb_pos).toULong() else 2UL
|
||||
}
|
||||
fun mutateLongEnumNormalDefault(longEnumNormalDefault: ULong) : Boolean {
|
||||
val o = __offset(110)
|
||||
return if (o != 0) {
|
||||
bb.putLong(o + bb_pos, longEnumNormalDefault.toLong())
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
override fun keysCompare(o1: Int, o2: Int, _bb: ByteBuffer) : Int {
|
||||
return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb)
|
||||
}
|
||||
@@ -853,7 +881,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(52)
|
||||
fun startMonster(builder: FlatBufferBuilder) = builder.startTable(54)
|
||||
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)
|
||||
@@ -1044,6 +1072,8 @@ class Monster : Table() {
|
||||
}
|
||||
fun startScalarKeySortedTablesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4)
|
||||
fun addNativeInline(builder: FlatBufferBuilder, nativeInline: Int) = builder.addStruct(51, nativeInline, 0)
|
||||
fun addLongEnumNonEnumDefault(builder: FlatBufferBuilder, longEnumNonEnumDefault: ULong) = builder.addLong(52, longEnumNonEnumDefault.toLong(), 0)
|
||||
fun addLongEnumNormalDefault(builder: FlatBufferBuilder, longEnumNormalDefault: ULong) = builder.addLong(53, longEnumNormalDefault.toLong(), 2)
|
||||
fun endMonster(builder: FlatBufferBuilder) : Int {
|
||||
val o = builder.endTable()
|
||||
builder.required(o, 10)
|
||||
|
||||
@@ -687,8 +687,24 @@ function mt:NativeInline()
|
||||
end
|
||||
end
|
||||
|
||||
function mt:LongEnumNonEnumDefault()
|
||||
local o = self.view:Offset(108)
|
||||
if o ~= 0 then
|
||||
return self.view:Get(flatbuffers.N.Uint64, self.view.pos + o)
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function mt:LongEnumNormalDefault()
|
||||
local o = self.view:Offset(110)
|
||||
if o ~= 0 then
|
||||
return self.view:Get(flatbuffers.N.Uint64, self.view.pos + o)
|
||||
end
|
||||
return 2
|
||||
end
|
||||
|
||||
function Monster.Start(builder)
|
||||
builder:StartObject(52)
|
||||
builder:StartObject(54)
|
||||
end
|
||||
|
||||
function Monster.AddPos(builder, pos)
|
||||
@@ -975,6 +991,14 @@ function Monster.AddNativeInline(builder, nativeInline)
|
||||
builder:PrependStructSlot(51, nativeInline, 0)
|
||||
end
|
||||
|
||||
function Monster.AddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault)
|
||||
builder:PrependUint64Slot(52, longEnumNonEnumDefault, 0)
|
||||
end
|
||||
|
||||
function Monster.AddLongEnumNormalDefault(builder, longEnumNormalDefault)
|
||||
builder:PrependUint64Slot(53, longEnumNormalDefault, 2)
|
||||
end
|
||||
|
||||
function Monster.End(builder)
|
||||
return builder:EndObject()
|
||||
end
|
||||
|
||||
@@ -736,22 +736,40 @@ class Monster extends Table
|
||||
return $o != 0 ? $obj->init($o + $this->bb_pos, $this->bb) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ulong
|
||||
*/
|
||||
public function getLongEnumNonEnumDefault()
|
||||
{
|
||||
$o = $this->__offset(108);
|
||||
return $o != 0 ? $this->bb->getUlong($o + $this->bb_pos) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ulong
|
||||
*/
|
||||
public function getLongEnumNormalDefault()
|
||||
{
|
||||
$o = $this->__offset(110);
|
||||
return $o != 0 ? $this->bb->getUlong($o + $this->bb_pos) : \MyGame\Example\LongEnum::LongOne;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FlatBufferBuilder $builder
|
||||
* @return void
|
||||
*/
|
||||
public static function startMonster(FlatBufferBuilder $builder)
|
||||
{
|
||||
$builder->StartObject(52);
|
||||
$builder->StartObject(54);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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, $native_inline)
|
||||
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, $long_enum_non_enum_default, $long_enum_normal_default)
|
||||
{
|
||||
$builder->startObject(52);
|
||||
$builder->startObject(54);
|
||||
self::addPos($builder, $pos);
|
||||
self::addMana($builder, $mana);
|
||||
self::addHp($builder, $hp);
|
||||
@@ -803,6 +821,8 @@ class Monster extends Table
|
||||
self::addTestrequirednestedflatbuffer($builder, $testrequirednestedflatbuffer);
|
||||
self::addScalarKeySortedTables($builder, $scalar_key_sorted_tables);
|
||||
self::addNativeInline($builder, $native_inline);
|
||||
self::addLongEnumNonEnumDefault($builder, $long_enum_non_enum_default);
|
||||
self::addLongEnumNormalDefault($builder, $long_enum_normal_default);
|
||||
$o = $builder->endObject();
|
||||
$builder->required($o, 10); // name
|
||||
return $o;
|
||||
@@ -1783,6 +1803,26 @@ class Monster extends Table
|
||||
$builder->addStructX(51, $nativeInline, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FlatBufferBuilder $builder
|
||||
* @param ulong
|
||||
* @return void
|
||||
*/
|
||||
public static function addLongEnumNonEnumDefault(FlatBufferBuilder $builder, $longEnumNonEnumDefault)
|
||||
{
|
||||
$builder->addUlongX(52, $longEnumNonEnumDefault, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FlatBufferBuilder $builder
|
||||
* @param ulong
|
||||
* @return void
|
||||
*/
|
||||
public static function addLongEnumNormalDefault(FlatBufferBuilder $builder, $longEnumNormalDefault)
|
||||
{
|
||||
$builder->addUlongX(53, $longEnumNormalDefault, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FlatBufferBuilder $builder
|
||||
* @return int table offset
|
||||
|
||||
@@ -802,7 +802,21 @@ class Monster(object):
|
||||
return obj
|
||||
return None
|
||||
|
||||
def MonsterStart(builder): builder.StartObject(52)
|
||||
# Monster
|
||||
def LongEnumNonEnumDefault(self):
|
||||
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(108))
|
||||
if o != 0:
|
||||
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
|
||||
return 0
|
||||
|
||||
# Monster
|
||||
def LongEnumNormalDefault(self):
|
||||
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(110))
|
||||
if o != 0:
|
||||
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
|
||||
return 2
|
||||
|
||||
def MonsterStart(builder): builder.StartObject(54)
|
||||
def Start(builder):
|
||||
return MonsterStart(builder)
|
||||
def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0)
|
||||
@@ -1032,6 +1046,12 @@ def StartScalarKeySortedTablesVector(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 MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0)
|
||||
def AddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault):
|
||||
return MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault)
|
||||
def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2)
|
||||
def AddLongEnumNormalDefault(builder, longEnumNormalDefault):
|
||||
return MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault)
|
||||
def MonsterEnd(builder): return builder.EndObject()
|
||||
def End(builder):
|
||||
return MonsterEnd(builder)
|
||||
@@ -1106,6 +1126,8 @@ class MonsterT(object):
|
||||
self.testrequirednestedflatbuffer = None # type: List[int]
|
||||
self.scalarKeySortedTables = None # type: List[MyGame.Example.Stat.StatT]
|
||||
self.nativeInline = None # type: Optional[MyGame.Example.Test.TestT]
|
||||
self.longEnumNonEnumDefault = 0 # type: int
|
||||
self.longEnumNormalDefault = 2 # type: int
|
||||
|
||||
@classmethod
|
||||
def InitFromBuf(cls, buf, pos):
|
||||
@@ -1300,6 +1322,8 @@ class MonsterT(object):
|
||||
self.scalarKeySortedTables.append(stat_)
|
||||
if monster.NativeInline() is not None:
|
||||
self.nativeInline = MyGame.Example.Test.TestT.InitFromObj(monster.NativeInline())
|
||||
self.longEnumNonEnumDefault = monster.LongEnumNonEnumDefault()
|
||||
self.longEnumNormalDefault = monster.LongEnumNormalDefault()
|
||||
|
||||
# MonsterT
|
||||
def Pack(self, builder):
|
||||
@@ -1551,5 +1575,7 @@ class MonsterT(object):
|
||||
if self.nativeInline is not None:
|
||||
nativeInline = self.nativeInline.Pack(builder)
|
||||
MonsterAddNativeInline(builder, nativeInline)
|
||||
MonsterAddLongEnumNonEnumDefault(builder, self.longEnumNonEnumDefault)
|
||||
MonsterAddLongEnumNormalDefault(builder, self.longEnumNormalDefault)
|
||||
monster = MonsterEnd(builder)
|
||||
return monster
|
||||
|
||||
@@ -56,6 +56,8 @@ public class MonsterT {
|
||||
private int[] testrequirednestedflatbuffer;
|
||||
private MyGame.Example.StatT[] scalarKeySortedTables;
|
||||
private MyGame.Example.TestT nativeInline;
|
||||
private long longEnumNonEnumDefault;
|
||||
private long longEnumNormalDefault;
|
||||
|
||||
public MyGame.Example.Vec3T getPos() { return pos; }
|
||||
|
||||
@@ -249,6 +251,14 @@ public class MonsterT {
|
||||
|
||||
public void setNativeInline(MyGame.Example.TestT nativeInline) { this.nativeInline = nativeInline; }
|
||||
|
||||
public long getLongEnumNonEnumDefault() { return longEnumNonEnumDefault; }
|
||||
|
||||
public void setLongEnumNonEnumDefault(long longEnumNonEnumDefault) { this.longEnumNonEnumDefault = longEnumNonEnumDefault; }
|
||||
|
||||
public long getLongEnumNormalDefault() { return longEnumNormalDefault; }
|
||||
|
||||
public void setLongEnumNormalDefault(long longEnumNormalDefault) { this.longEnumNormalDefault = longEnumNormalDefault; }
|
||||
|
||||
|
||||
public MonsterT() {
|
||||
this.pos = new MyGame.Example.Vec3T();
|
||||
@@ -299,6 +309,8 @@ public class MonsterT {
|
||||
this.testrequirednestedflatbuffer = null;
|
||||
this.scalarKeySortedTables = null;
|
||||
this.nativeInline = new MyGame.Example.TestT();
|
||||
this.longEnumNonEnumDefault = 0L;
|
||||
this.longEnumNormalDefault = 2L;
|
||||
}
|
||||
public static MonsterT deserializeFromBinary(byte[] fbBuffer) {
|
||||
return Monster.getRootAsMonster(ByteBuffer.wrap(fbBuffer)).unpack();
|
||||
|
||||
Reference in New Issue
Block a user