Squashed 'third_party/flatbuffers/' changes from bc44fad35..8aa8b9139
8aa8b9139 Fix handling of +/-inf defaults in TS/rust/go/dart codegen (#7588)
001adf782 Add support for parsing proto map fields (#7613)
dbc58ab77 Fix help output for --gen-includes (#7611)
2facfeec7 Fix missing spaces in flatc help text (#7612)
4de2814c7 Fix: arduino platform build (#7625)
37b1acdaf Fix current official name of macOS (#7627)
a22434e2a Add missing #include <algorithm> for std::min/std::max uses, and #include <limits> for std::numeric_limits<> (#7624)
214cc9468 Bump Rust version to 22.10.26 before publication (#7622)
a4ff275d9 Added option to not requires an EoF token when parsing JSON (#7620)
15f32c690 python: object generation prefix and suffix (#7565)
051afd882 Add CreateSharedString to python builder (#7608)
728c033ad Add check for presence of realpath to CMakeLists.txt to support more platforms (#7603)
4c514483d Update DartTest.sh golden files (#7606)
c2d9c2080 [TS] Add support for fixed length arrays on Typescript (#5864) (#7021) (#7581)
e34ae4c6b `build.yml`: Fix missing 'v' in version
e54536127 `build.yml` Update to Kotlin Wrapper 1.0.5
49d9f941c `release.yml` Use env var for passphrase
cefc21c1f `release.yml` Add GPG key for Maven
3e64fa724 `release.yml`: Add Maven Steps
b15f3c57e `release_yml` Use new dotnet version
ff802c680 `release.yml` Use NuGet Key directly
b401957d5 `release.yml` Changed Push to follow examples
8c8151f8f `release.yml` Fix nuget push command
ebb7c203d `release.yml` Add Nuget support
203241ed3 FlatBuffers Version 22.10.26 (#7607)
ac485609c `setup.py`: Define version directly
de5b85aa6 `release.yml`: Switch to `python` directory
de3df2d88 `release.yml`: Add publishing to PyPi
043a24f2e [Python] Fixed the issue with nested unions relying on InitFromBuf. (#7576)
5a48b0d7d release.yml: Typo
ce307556f release.yml: Remove `npm ci`
cb616e27c Create release.yml (#7605)
a54ca1e75 FlatBuffers Version 22.10.25 (#7604)
5b3fadcc1 [vector] Allow to iterate with mutables (#7586)
872a49746 [Nim] Bfbs Nim Generator (#7534)
e30170296 Make type conversions explicit. (#7595)
f7b734438 Fix LongEnum definitions (#7596)
5792623df Rust fix compilation for no_std targets #2 (#7553)
0edb27528 Update Rust version (#7574)
acc6a20d3 tests/test.cpp contains a couple of tests that are only executed (#7571)
04cd037ba Fix #7580 by documenting union schema evolution rules (#7585)
e1c5db988 Turn on clippy for Rust and fix lints for non-generated code (#7575)
b80142b90 Update documentation to mention enum value attributes (#7570)
54418f371 Add support for metadata attributes for enum values (#7567) (#7568)
c92e78a9f FlatBuffers Version 22.9.29 (#7557)
d243b904c [TS] Make strict compliant and improve typings (#7549)
374f8fb5f Rust soundness fixes (#7518)
dadbff571 Moves swift package to root of repository so it can be used directly … (#7548)
76ddae006 FlatBuffers Version 22.9.24 (#7547)
cfe157ec5 Emit internal enums when swift_implementation_only (#7545)
413115858 [Python] Python fixed size array (#7529)
88046190e Upgrade grpc to 1.49.0 and make sure it builds (#7538)
72aa85a75 [C++] Rare bad buffer content alignment if sizeof(T) != alignof(T) (#7520)
bfceebb7f Fix conform (#7532)
git-subtree-dir: third_party/flatbuffers
git-subtree-split: 8aa8b9139eb330f27816a5b8b5bbef402fbe3632
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
Change-Id: I943faba499baf58e9f561b1e4734922188ba8626
diff --git a/tests/Abc.nim b/tests/Abc.nim
new file mode 100644
index 0000000..be4e667
--- /dev/null
+++ b/tests/Abc.nim
@@ -0,0 +1,13 @@
+#[ Abc
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+]#
+
+type Abc*{.pure.} = enum
+ A = 0.int32,
+ B = 1.int32,
+ C = 2.int32,
diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel
index 3330bfc..d9048ea 100644
--- a/tests/BUILD.bazel
+++ b/tests/BUILD.bazel
@@ -8,6 +8,9 @@
name = "flatbuffers_test",
testonly = 1,
srcs = [
+ "alignment_test.cpp",
+ "alignment_test.h",
+ "alignment_test_generated.h",
"evolution_test.cpp",
"evolution_test.h",
"evolution_test/evolution_v1_generated.h",
@@ -50,6 +53,7 @@
"-DBAZEL_TEST_DATA_PATH",
],
data = [
+ ":alignment_test.fbs",
":arrays_test.bfbs",
":arrays_test.fbs",
":arrays_test.golden",
@@ -90,6 +94,7 @@
"include/",
],
deps = [
+ ":alignment_test_cc_fbs",
":arrays_test_cc_fbs",
":monster_extra_cc_fbs",
":monster_test_cc_fbs",
@@ -214,3 +219,8 @@
"--cpp-ptr-type flatbuffers::unique_ptr",
],
)
+
+flatbuffer_cc_library(
+ name = "alignment_test_cc_fbs",
+ srcs = ["alignment_test.fbs"],
+)
diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java
index 0419f79..58d676d 100644
--- a/tests/DictionaryLookup/LongFloatEntry.java
+++ b/tests/DictionaryLookup/LongFloatEntry.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class LongFloatEntry extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); }
public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt
index 6b1e500..dfb2ecb 100644
--- a/tests/DictionaryLookup/LongFloatEntry.kt
+++ b/tests/DictionaryLookup/LongFloatEntry.kt
@@ -32,7 +32,7 @@
return (val_1 - val_2).sign
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry())
fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java
index 9cc3500..761439d 100644
--- a/tests/DictionaryLookup/LongFloatMap.java
+++ b/tests/DictionaryLookup/LongFloatMap.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class LongFloatMap extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); }
public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt
index 3ac15aa..9458608 100644
--- a/tests/DictionaryLookup/LongFloatMap.kt
+++ b/tests/DictionaryLookup/LongFloatMap.kt
@@ -46,7 +46,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap())
fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs
index af2a375..271b21b 100644
--- a/tests/KeywordTest/KeywordsInTable.cs
+++ b/tests/KeywordTest/KeywordsInTable.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); }
public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim
new file mode 100644
index 0000000..0376f55
--- /dev/null
+++ b/tests/MoreDefaults.nim
@@ -0,0 +1,103 @@
+#[ MoreDefaults
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+]#
+
+import Abc as Abc
+import flatbuffers
+
+type MoreDefaults* = object of FlatObj
+func intsLength*(self: MoreDefaults): int =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func ints*(self: MoreDefaults, j: int): int32 =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return Get[int32](self.tab, x)
+func ints*(self: MoreDefaults): seq[int32] =
+ let len = self.intsLength
+ for i in countup(0, len - 1):
+ result.add(self.ints(i))
+func floatsLength*(self: MoreDefaults): int =
+ let o = self.tab.Offset(6)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func floats*(self: MoreDefaults, j: int): float32 =
+ let o = self.tab.Offset(6)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return Get[float32](self.tab, x)
+func floats*(self: MoreDefaults): seq[float32] =
+ let len = self.floatsLength
+ for i in countup(0, len - 1):
+ result.add(self.floats(i))
+func emptyString*(self: MoreDefaults): string =
+ let o = self.tab.Offset(8)
+ if o != 0:
+ return self.tab.String(self.tab.Pos + o)
+ return ""
+func someString*(self: MoreDefaults): string =
+ let o = self.tab.Offset(10)
+ if o != 0:
+ return self.tab.String(self.tab.Pos + o)
+ return ""
+func abcsLength*(self: MoreDefaults): int =
+ let o = self.tab.Offset(12)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func abcs*(self: MoreDefaults, j: int): Abc.Abc =
+ let o = self.tab.Offset(12)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return Abc.Abc(Get[int32](self.tab, x))
+func abcs*(self: MoreDefaults): seq[Abc.Abc] =
+ let len = self.abcsLength
+ for i in countup(0, len - 1):
+ result.add(self.abcs(i))
+func boolsLength*(self: MoreDefaults): int =
+ let o = self.tab.Offset(14)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func bools*(self: MoreDefaults, j: int): bool =
+ let o = self.tab.Offset(14)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[bool](self.tab, x)
+func bools*(self: MoreDefaults): seq[bool] =
+ let len = self.boolsLength
+ for i in countup(0, len - 1):
+ result.add(self.bools(i))
+proc MoreDefaultsStart*(builder: var Builder) =
+ builder.StartObject(6)
+proc MoreDefaultsAddints*(builder: var Builder, ints: uoffset) =
+ builder.PrependSlot(0, ints, default(uoffset))
+proc MoreDefaultsStartintsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MoreDefaultsAddfloats*(builder: var Builder, floats: uoffset) =
+ builder.PrependSlot(1, floats, default(uoffset))
+proc MoreDefaultsStartfloatsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MoreDefaultsAddemptyString*(builder: var Builder, emptyString: uoffset) =
+ builder.PrependSlot(2, emptyString, default(uoffset))
+proc MoreDefaultsAddsomeString*(builder: var Builder, someString: uoffset) =
+ builder.PrependSlot(3, someString, default(uoffset))
+proc MoreDefaultsAddabcs*(builder: var Builder, abcs: uoffset) =
+ builder.PrependSlot(4, abcs, default(uoffset))
+proc MoreDefaultsStartabcsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MoreDefaultsAddbools*(builder: var Builder, bools: uoffset) =
+ builder.PrependSlot(5, bools, default(uoffset))
+proc MoreDefaultsStartboolsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MoreDefaultsEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua
index 01c7480..223c6f0 100644
--- a/tests/MyGame/Example/Ability.lua
+++ b/tests/MyGame/Example/Ability.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim
new file mode 100644
index 0000000..987a0bc
--- /dev/null
+++ b/tests/MyGame/Example/Ability.nim
@@ -0,0 +1,26 @@
+#[ MyGame.Example.Ability
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+
+type Ability* = object of FlatObj
+func id*(self: Ability): uint32 =
+ return Get[uint32](self.tab, self.tab.Pos + 0)
+func `id=`*(self: var Ability, n: uint32): bool =
+ return self.tab.Mutate(self.tab.Pos + 0, n)
+func distance*(self: Ability): uint32 =
+ return Get[uint32](self.tab, self.tab.Pos + 4)
+func `distance=`*(self: var Ability, n: uint32): bool =
+ return self.tab.Mutate(self.tab.Pos + 4, n)
+proc AbilityCreate*(self: var Builder, id: uint32, distance: uint32): uoffset =
+ self.Prep(4, 8)
+ self.Prepend(distance)
+ self.Prepend(id)
+ return self.Offset()
diff --git a/tests/MyGame/Example/Ability.py b/tests/MyGame/Example/Ability.py
index e57dfd7..e0344e5 100644
--- a/tests/MyGame/Example/Ability.py
+++ b/tests/MyGame/Example/Ability.py
@@ -43,6 +43,11 @@
return cls.InitFromObj(ability)
@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, ability):
x = AbilityT()
x._UnPack(ability)
diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua
index b99f4c6..8aa73ee 100644
--- a/tests/MyGame/Example/Any.lua
+++ b/tests/MyGame/Example/Any.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim
new file mode 100644
index 0000000..977d419
--- /dev/null
+++ b/tests/MyGame/Example/Any.nim
@@ -0,0 +1,15 @@
+#[ MyGame.Example.Any
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+type Any*{.pure.} = enum
+ None = 0.uint8,
+ Monster = 1.uint8,
+ TestSimpleTableWithEnum = 2.uint8,
+ MyGameExample2Monster = 3.uint8,
diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua
index 0d6106c..226055c 100644
--- a/tests/MyGame/Example/AnyAmbiguousAliases.lua
+++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim
new file mode 100644
index 0000000..e8fd6c9
--- /dev/null
+++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim
@@ -0,0 +1,15 @@
+#[ MyGame.Example.AnyAmbiguousAliases
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+type AnyAmbiguousAliases*{.pure.} = enum
+ None = 0.uint8,
+ M1 = 1.uint8,
+ M2 = 2.uint8,
+ M3 = 3.uint8,
diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua
index 7ab4f9c..159028b 100644
--- a/tests/MyGame/Example/AnyUniqueAliases.lua
+++ b/tests/MyGame/Example/AnyUniqueAliases.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim
new file mode 100644
index 0000000..b31caf1
--- /dev/null
+++ b/tests/MyGame/Example/AnyUniqueAliases.nim
@@ -0,0 +1,15 @@
+#[ MyGame.Example.AnyUniqueAliases
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+type AnyUniqueAliases*{.pure.} = enum
+ None = 0.uint8,
+ M = 1.uint8,
+ Ts = 2.uint8,
+ M2 = 3.uint8,
diff --git a/tests/MyGame/Example/ArrayStruct.py b/tests/MyGame/Example/ArrayStruct.py
index c80bf68..d80f842 100644
--- a/tests/MyGame/Example/ArrayStruct.py
+++ b/tests/MyGame/Example/ArrayStruct.py
@@ -20,53 +20,65 @@
# ArrayStruct
def A(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
# ArrayStruct
- def B(self): return [self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4 + i * 4)) for i in range(15)]
+ def B(self, j = None):
+ if j is None:
+ return [self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4 + i * 4)) for i in range(self.BLength())]
+ elif j >= 0 and j < self.BLength():
+ return self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4 + j * 4))
+ else:
+ return None
+
+ # ArrayStruct
+ def BAsNumpy(self):
+ return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int32Flags, self._tab.Pos + 4, self.BLength())
+
# ArrayStruct
def BLength(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
- if o != 0:
- return self._tab.VectorLen(o)
- return 0
+ return 15
# ArrayStruct
def BIsNone(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
- return o == 0
+ return False
# ArrayStruct
def C(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(64))
# ArrayStruct
- def D(self, obj, i):
+ def D(self, i: int):
+ from MyGame.Example.NestedStruct import NestedStruct
+ obj = NestedStruct()
obj.Init(self._tab.Bytes, self._tab.Pos + 72 + i * 32)
return obj
# ArrayStruct
def DLength(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(72))
- if o != 0:
- return self._tab.VectorLen(o)
- return 0
+ return 2
# ArrayStruct
def DIsNone(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(72))
- return o == 0
+ return False
# ArrayStruct
def E(self): return self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(136))
# ArrayStruct
- def F(self): return [self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(144 + i * 8)) for i in range(2)]
+ def F(self, j = None):
+ if j is None:
+ return [self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(144 + i * 8)) for i in range(self.FLength())]
+ elif j >= 0 and j < self.FLength():
+ return self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(144 + j * 8))
+ else:
+ return None
+
+ # ArrayStruct
+ def FAsNumpy(self):
+ return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int64Flags, self._tab.Pos + 144, self.FLength())
+
# ArrayStruct
def FLength(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(144))
- if o != 0:
- return self._tab.VectorLen(o)
- return 0
+ return 2
# ArrayStruct
def FIsNone(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(144))
- return o == 0
+ return False
def CreateArrayStruct(builder, a, b, c, d_a, d_b, d_c, d_d, e, f):
@@ -116,6 +128,11 @@
return cls.InitFromObj(arrayStruct)
@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, arrayStruct):
x = ArrayStructT()
x._UnPack(arrayStruct)
@@ -137,7 +154,11 @@
if not arrayStruct.DIsNone():
self.d = []
for i in range(arrayStruct.DLength()):
- self.d.append(arrayStruct.D(i))
+ if arrayStruct.D(i) is None:
+ self.d.append(None)
+ else:
+ nestedStruct_ = MyGame.Example.NestedStruct.NestedStructT.InitFromObj(arrayStruct.D(i))
+ self.d.append(nestedStruct_)
self.e = arrayStruct.E()
if not arrayStruct.FIsNone():
if np is None:
diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs
index a5e4e79..1af6c28 100644
--- a/tests/MyGame/Example/ArrayTable.cs
+++ b/tests/MyGame/Example/ArrayTable.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); }
public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); }
diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java
index c255da3..1291eaf 100644
--- a/tests/MyGame/Example/ArrayTable.java
+++ b/tests/MyGame/Example/ArrayTable.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class ArrayTable extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); }
public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); }
diff --git a/tests/MyGame/Example/ArrayTable.py b/tests/MyGame/Example/ArrayTable.py
index 62d71af..b7a3ac5 100644
--- a/tests/MyGame/Example/ArrayTable.py
+++ b/tests/MyGame/Example/ArrayTable.py
@@ -67,6 +67,11 @@
return cls.InitFromObj(arrayTable)
@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, arrayTable):
x = ArrayTableT()
x._UnPack(arrayTable)
diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua
index c7a0b1e..35a58dc 100644
--- a/tests/MyGame/Example/Color.lua
+++ b/tests/MyGame/Example/Color.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim
new file mode 100644
index 0000000..3c94beb
--- /dev/null
+++ b/tests/MyGame/Example/Color.nim
@@ -0,0 +1,18 @@
+#[ MyGame.Example.Color
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+# Composite components of Monster color.
+type Color*{.pure.} = enum
+ Red = 1.uint8,
+ # \brief color Green
+ # Green is bit_flag with value (1u << 1)
+ Green = 2.uint8,
+ # \brief color Blue (1u << 3)
+ Blue = 8.uint8,
diff --git a/tests/MyGame/Example/LongEnum.java b/tests/MyGame/Example/LongEnum.java
index 4640f08..ca2f81a 100644
--- a/tests/MyGame/Example/LongEnum.java
+++ b/tests/MyGame/Example/LongEnum.java
@@ -5,8 +5,8 @@
@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;
+ public static final long LongOne = 2L;
+ public static final long LongTwo = 4L;
+ public static final long LongBig = 1099511627776L;
}
diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua
index a4e3dc5..b7d3367 100644
--- a/tests/MyGame/Example/LongEnum.lua
+++ b/tests/MyGame/Example/LongEnum.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim
new file mode 100644
index 0000000..2ff5b08
--- /dev/null
+++ b/tests/MyGame/Example/LongEnum.nim
@@ -0,0 +1,14 @@
+#[ MyGame.Example.LongEnum
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+type LongEnum*{.pure.} = enum
+ LongOne = 2.uint64,
+ LongTwo = 4.uint64,
+ LongBig = 1099511627776.uint64,
diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs
index 87d8ef3..c0f310c 100644
--- a/tests/MyGame/Example/Monster.cs
+++ b/tests/MyGame/Example/Monster.cs
@@ -14,7 +14,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); }
public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); }
@@ -215,6 +215,22 @@
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 float NanDefault { get { int o = __p.__offset(112); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.NaN; } }
+ public bool MutateNanDefault(float nan_default) { int o = __p.__offset(112); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, nan_default); return true; } else { return false; } }
+ public float InfDefault { get { int o = __p.__offset(114); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } }
+ public bool MutateInfDefault(float inf_default) { int o = __p.__offset(114); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, inf_default); return true; } else { return false; } }
+ public float PositiveInfDefault { get { int o = __p.__offset(116); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } }
+ public bool MutatePositiveInfDefault(float positive_inf_default) { int o = __p.__offset(116); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, positive_inf_default); return true; } else { return false; } }
+ public float InfinityDefault { get { int o = __p.__offset(118); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } }
+ public bool MutateInfinityDefault(float infinity_default) { int o = __p.__offset(118); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, infinity_default); return true; } else { return false; } }
+ public float PositiveInfinityDefault { get { int o = __p.__offset(120); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } }
+ public bool MutatePositiveInfinityDefault(float positive_infinity_default) { int o = __p.__offset(120); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, positive_infinity_default); return true; } else { return false; } }
+ public float NegativeInfDefault { get { int o = __p.__offset(122); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.NegativeInfinity; } }
+ public bool MutateNegativeInfDefault(float negative_inf_default) { int o = __p.__offset(122); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, negative_inf_default); return true; } else { return false; } }
+ public float NegativeInfinityDefault { get { int o = __p.__offset(124); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.NegativeInfinity; } }
+ public bool MutateNegativeInfinityDefault(float negative_infinity_default) { int o = __p.__offset(124); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, negative_infinity_default); return true; } else { return false; } }
+ public double DoubleInfDefault { get { int o = __p.__offset(126); return o != 0 ? __p.bb.GetDouble(o + __p.bb_pos) : (double)Double.PositiveInfinity; } }
+ public bool MutateDoubleInfDefault(double double_inf_default) { int o = __p.__offset(126); if (o != 0) { __p.bb.PutDouble(o + __p.bb_pos, double_inf_default); return true; } else { return false; } }
public static Offset<MyGame.Example.Monster> CreateMonster(FlatBufferBuilder builder,
MyGame.Example.Vec3T pos = null,
@@ -269,8 +285,17 @@
VectorOffset scalar_key_sorted_tablesOffset = default(VectorOffset),
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);
+ MyGame.Example.LongEnum long_enum_normal_default = MyGame.Example.LongEnum.LongOne,
+ float nan_default = Single.NaN,
+ float inf_default = Single.PositiveInfinity,
+ float positive_inf_default = Single.PositiveInfinity,
+ float infinity_default = Single.PositiveInfinity,
+ float positive_infinity_default = Single.PositiveInfinity,
+ float negative_inf_default = Single.NegativeInfinity,
+ float negative_infinity_default = Single.NegativeInfinity,
+ double double_inf_default = Double.PositiveInfinity) {
+ builder.StartTable(62);
+ Monster.AddDoubleInfDefault(builder, double_inf_default);
Monster.AddLongEnumNormalDefault(builder, long_enum_normal_default);
Monster.AddLongEnumNonEnumDefault(builder, long_enum_non_enum_default);
Monster.AddNonOwningReference(builder, non_owning_reference);
@@ -280,6 +305,13 @@
Monster.AddTesthashs64Fnv1a(builder, testhashs64_fnv1a);
Monster.AddTesthashu64Fnv1(builder, testhashu64_fnv1);
Monster.AddTesthashs64Fnv1(builder, testhashs64_fnv1);
+ Monster.AddNegativeInfinityDefault(builder, negative_infinity_default);
+ Monster.AddNegativeInfDefault(builder, negative_inf_default);
+ Monster.AddPositiveInfinityDefault(builder, positive_infinity_default);
+ Monster.AddInfinityDefault(builder, infinity_default);
+ Monster.AddPositiveInfDefault(builder, positive_inf_default);
+ Monster.AddInfDefault(builder, inf_default);
+ Monster.AddNanDefault(builder, nan_default);
Monster.AddNativeInline(builder, MyGame.Example.Test.Pack(builder, native_inline));
Monster.AddScalarKeySortedTables(builder, scalar_key_sorted_tablesOffset);
Monster.AddTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset);
@@ -327,7 +359,7 @@
return Monster.EndMonster(builder);
}
- public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(54); }
+ public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(62); }
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); }
@@ -469,6 +501,14 @@
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 void AddNanDefault(FlatBufferBuilder builder, float nanDefault) { builder.AddFloat(54, nanDefault, Single.NaN); }
+ public static void AddInfDefault(FlatBufferBuilder builder, float infDefault) { builder.AddFloat(55, infDefault, Single.PositiveInfinity); }
+ public static void AddPositiveInfDefault(FlatBufferBuilder builder, float positiveInfDefault) { builder.AddFloat(56, positiveInfDefault, Single.PositiveInfinity); }
+ public static void AddInfinityDefault(FlatBufferBuilder builder, float infinityDefault) { builder.AddFloat(57, infinityDefault, Single.PositiveInfinity); }
+ public static void AddPositiveInfinityDefault(FlatBufferBuilder builder, float positiveInfinityDefault) { builder.AddFloat(58, positiveInfinityDefault, Single.PositiveInfinity); }
+ public static void AddNegativeInfDefault(FlatBufferBuilder builder, float negativeInfDefault) { builder.AddFloat(59, negativeInfDefault, Single.NegativeInfinity); }
+ public static void AddNegativeInfinityDefault(FlatBufferBuilder builder, float negativeInfinityDefault) { builder.AddFloat(60, negativeInfinityDefault, Single.NegativeInfinity); }
+ public static void AddDoubleInfDefault(FlatBufferBuilder builder, double doubleInfDefault) { builder.AddDouble(61, doubleInfDefault, Double.PositiveInfinity); }
public static Offset<MyGame.Example.Monster> EndMonster(FlatBufferBuilder builder) {
int o = builder.EndTable();
builder.Required(o, 10); // name
@@ -620,6 +660,14 @@
_o.NativeInline = this.NativeInline.HasValue ? this.NativeInline.Value.UnPack() : null;
_o.LongEnumNonEnumDefault = this.LongEnumNonEnumDefault;
_o.LongEnumNormalDefault = this.LongEnumNormalDefault;
+ _o.NanDefault = this.NanDefault;
+ _o.InfDefault = this.InfDefault;
+ _o.PositiveInfDefault = this.PositiveInfDefault;
+ _o.InfinityDefault = this.InfinityDefault;
+ _o.PositiveInfinityDefault = this.PositiveInfinityDefault;
+ _o.NegativeInfDefault = this.NegativeInfDefault;
+ _o.NegativeInfinityDefault = this.NegativeInfinityDefault;
+ _o.DoubleInfDefault = this.DoubleInfDefault;
}
public static Offset<MyGame.Example.Monster> Pack(FlatBufferBuilder builder, MonsterT _o) {
if (_o == null) return default(Offset<MyGame.Example.Monster>);
@@ -796,7 +844,15 @@
_scalar_key_sorted_tables,
_o.NativeInline,
_o.LongEnumNonEnumDefault,
- _o.LongEnumNormalDefault);
+ _o.LongEnumNormalDefault,
+ _o.NanDefault,
+ _o.InfDefault,
+ _o.PositiveInfDefault,
+ _o.InfinityDefault,
+ _o.PositiveInfinityDefault,
+ _o.NegativeInfDefault,
+ _o.NegativeInfinityDefault,
+ _o.DoubleInfDefault);
}
}
@@ -949,6 +1005,22 @@
public MyGame.Example.LongEnum LongEnumNonEnumDefault { get; set; }
[Newtonsoft.Json.JsonProperty("long_enum_normal_default")]
public MyGame.Example.LongEnum LongEnumNormalDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("nan_default")]
+ public float NanDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("inf_default")]
+ public float InfDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("positive_inf_default")]
+ public float PositiveInfDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("infinity_default")]
+ public float InfinityDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("positive_infinity_default")]
+ public float PositiveInfinityDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("negative_inf_default")]
+ public float NegativeInfDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("negative_infinity_default")]
+ public float NegativeInfinityDefault { get; set; }
+ [Newtonsoft.Json.JsonProperty("double_inf_default")]
+ public double DoubleInfDefault { get; set; }
public MonsterT() {
this.Pos = new MyGame.Example.Vec3T();
@@ -1001,6 +1073,14 @@
this.NativeInline = new MyGame.Example.TestT();
this.LongEnumNonEnumDefault = 0;
this.LongEnumNormalDefault = MyGame.Example.LongEnum.LongOne;
+ this.NanDefault = Single.NaN;
+ this.InfDefault = Single.PositiveInfinity;
+ this.PositiveInfDefault = Single.PositiveInfinity;
+ this.InfinityDefault = Single.PositiveInfinity;
+ this.PositiveInfinityDefault = Single.PositiveInfinity;
+ this.NegativeInfDefault = Single.NegativeInfinity;
+ this.NegativeInfinityDefault = Single.NegativeInfinity;
+ this.DoubleInfDefault = Double.PositiveInfinity;
}
public static MonsterT DeserializeFromJson(string jsonText) {
diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go
index 237896c..b64ced7 100644
--- a/tests/MyGame/Example/Monster.go
+++ b/tests/MyGame/Example/Monster.go
@@ -3,6 +3,8 @@
package Example
import (
+ "math"
+
flatbuffers "github.com/google/flatbuffers/go"
MyGame "MyGame"
@@ -60,6 +62,14 @@
NativeInline *TestT `json:"native_inline"`
LongEnumNonEnumDefault LongEnum `json:"long_enum_non_enum_default"`
LongEnumNormalDefault LongEnum `json:"long_enum_normal_default"`
+ NanDefault float32 `json:"nan_default"`
+ InfDefault float32 `json:"inf_default"`
+ PositiveInfDefault float32 `json:"positive_inf_default"`
+ InfinityDefault float32 `json:"infinity_default"`
+ PositiveInfinityDefault float32 `json:"positive_infinity_default"`
+ NegativeInfDefault float32 `json:"negative_inf_default"`
+ NegativeInfinityDefault float32 `json:"negative_infinity_default"`
+ DoubleInfDefault float64 `json:"double_inf_default"`
}
func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
@@ -320,6 +330,14 @@
MonsterAddNativeInline(builder, nativeInlineOffset)
MonsterAddLongEnumNonEnumDefault(builder, t.LongEnumNonEnumDefault)
MonsterAddLongEnumNormalDefault(builder, t.LongEnumNormalDefault)
+ MonsterAddNanDefault(builder, t.NanDefault)
+ MonsterAddInfDefault(builder, t.InfDefault)
+ MonsterAddPositiveInfDefault(builder, t.PositiveInfDefault)
+ MonsterAddInfinityDefault(builder, t.InfinityDefault)
+ MonsterAddPositiveInfinityDefault(builder, t.PositiveInfinityDefault)
+ MonsterAddNegativeInfDefault(builder, t.NegativeInfDefault)
+ MonsterAddNegativeInfinityDefault(builder, t.NegativeInfinityDefault)
+ MonsterAddDoubleInfDefault(builder, t.DoubleInfDefault)
return MonsterEnd(builder)
}
@@ -461,6 +479,14 @@
t.NativeInline = rcv.NativeInline(nil).UnPack()
t.LongEnumNonEnumDefault = rcv.LongEnumNonEnumDefault()
t.LongEnumNormalDefault = rcv.LongEnumNormalDefault()
+ t.NanDefault = rcv.NanDefault()
+ t.InfDefault = rcv.InfDefault()
+ t.PositiveInfDefault = rcv.PositiveInfDefault()
+ t.InfinityDefault = rcv.InfinityDefault()
+ t.PositiveInfinityDefault = rcv.PositiveInfinityDefault()
+ t.NegativeInfDefault = rcv.NegativeInfDefault()
+ t.NegativeInfinityDefault = rcv.NegativeInfinityDefault()
+ t.DoubleInfDefault = rcv.DoubleInfDefault()
}
func (rcv *Monster) UnPack() *MonsterT {
@@ -1386,8 +1412,104 @@
return rcv._tab.MutateUint64Slot(110, uint64(n))
}
+func (rcv *Monster) NanDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(112))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.NaN())
+}
+
+func (rcv *Monster) MutateNanDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(112, n)
+}
+
+func (rcv *Monster) InfDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(114))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.Inf(1))
+}
+
+func (rcv *Monster) MutateInfDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(114, n)
+}
+
+func (rcv *Monster) PositiveInfDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(116))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.Inf(1))
+}
+
+func (rcv *Monster) MutatePositiveInfDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(116, n)
+}
+
+func (rcv *Monster) InfinityDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(118))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.Inf(1))
+}
+
+func (rcv *Monster) MutateInfinityDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(118, n)
+}
+
+func (rcv *Monster) PositiveInfinityDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(120))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.Inf(1))
+}
+
+func (rcv *Monster) MutatePositiveInfinityDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(120, n)
+}
+
+func (rcv *Monster) NegativeInfDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(122))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.Inf(-1))
+}
+
+func (rcv *Monster) MutateNegativeInfDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(122, n)
+}
+
+func (rcv *Monster) NegativeInfinityDefault() float32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(124))
+ if o != 0 {
+ return rcv._tab.GetFloat32(o + rcv._tab.Pos)
+ }
+ return float32(math.Inf(-1))
+}
+
+func (rcv *Monster) MutateNegativeInfinityDefault(n float32) bool {
+ return rcv._tab.MutateFloat32Slot(124, n)
+}
+
+func (rcv *Monster) DoubleInfDefault() float64 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(126))
+ if o != 0 {
+ return rcv._tab.GetFloat64(o + rcv._tab.Pos)
+ }
+ return float64(math.Inf(1))
+}
+
+func (rcv *Monster) MutateDoubleInfDefault(n float64) bool {
+ return rcv._tab.MutateFloat64Slot(126, n)
+}
+
func MonsterStart(builder *flatbuffers.Builder) {
- builder.StartObject(54)
+ builder.StartObject(62)
}
func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) {
builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0)
@@ -1608,6 +1730,30 @@
func MonsterAddLongEnumNormalDefault(builder *flatbuffers.Builder, longEnumNormalDefault LongEnum) {
builder.PrependUint64Slot(53, uint64(longEnumNormalDefault), 2)
}
+func MonsterAddNanDefault(builder *flatbuffers.Builder, nanDefault float32) {
+ builder.PrependFloat32Slot(54, nanDefault, float32(math.NaN()))
+}
+func MonsterAddInfDefault(builder *flatbuffers.Builder, infDefault float32) {
+ builder.PrependFloat32Slot(55, infDefault, float32(math.Inf(1)))
+}
+func MonsterAddPositiveInfDefault(builder *flatbuffers.Builder, positiveInfDefault float32) {
+ builder.PrependFloat32Slot(56, positiveInfDefault, float32(math.Inf(1)))
+}
+func MonsterAddInfinityDefault(builder *flatbuffers.Builder, infinityDefault float32) {
+ builder.PrependFloat32Slot(57, infinityDefault, float32(math.Inf(1)))
+}
+func MonsterAddPositiveInfinityDefault(builder *flatbuffers.Builder, positiveInfinityDefault float32) {
+ builder.PrependFloat32Slot(58, positiveInfinityDefault, float32(math.Inf(1)))
+}
+func MonsterAddNegativeInfDefault(builder *flatbuffers.Builder, negativeInfDefault float32) {
+ builder.PrependFloat32Slot(59, negativeInfDefault, float32(math.Inf(-1)))
+}
+func MonsterAddNegativeInfinityDefault(builder *flatbuffers.Builder, negativeInfinityDefault float32) {
+ builder.PrependFloat32Slot(60, negativeInfinityDefault, float32(math.Inf(-1)))
+}
+func MonsterAddDoubleInfDefault(builder *flatbuffers.Builder, doubleInfDefault float64) {
+ builder.PrependFloat64Slot(61, doubleInfDefault, float64(math.Inf(1)))
+}
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
return builder.EndObject()
}
diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java
index 5339054..ad958aa 100644
--- a/tests/MyGame/Example/Monster.java
+++ b/tests/MyGame/Example/Monster.java
@@ -12,7 +12,7 @@
*/
@SuppressWarnings("unused")
public final class Monster extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); }
public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); }
@@ -216,8 +216,24 @@
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 float nanDefault() { int o = __offset(112); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NaN; }
+ public boolean mutateNanDefault(float nan_default) { int o = __offset(112); if (o != 0) { bb.putFloat(o + bb_pos, nan_default); return true; } else { return false; } }
+ public float infDefault() { int o = __offset(114); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; }
+ public boolean mutateInfDefault(float inf_default) { int o = __offset(114); if (o != 0) { bb.putFloat(o + bb_pos, inf_default); return true; } else { return false; } }
+ public float positiveInfDefault() { int o = __offset(116); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; }
+ public boolean mutatePositiveInfDefault(float positive_inf_default) { int o = __offset(116); if (o != 0) { bb.putFloat(o + bb_pos, positive_inf_default); return true; } else { return false; } }
+ public float infinityDefault() { int o = __offset(118); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; }
+ public boolean mutateInfinityDefault(float infinity_default) { int o = __offset(118); if (o != 0) { bb.putFloat(o + bb_pos, infinity_default); return true; } else { return false; } }
+ public float positiveInfinityDefault() { int o = __offset(120); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; }
+ public boolean mutatePositiveInfinityDefault(float positive_infinity_default) { int o = __offset(120); if (o != 0) { bb.putFloat(o + bb_pos, positive_infinity_default); return true; } else { return false; } }
+ public float negativeInfDefault() { int o = __offset(122); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NEGATIVE_INFINITY; }
+ public boolean mutateNegativeInfDefault(float negative_inf_default) { int o = __offset(122); if (o != 0) { bb.putFloat(o + bb_pos, negative_inf_default); return true; } else { return false; } }
+ public float negativeInfinityDefault() { int o = __offset(124); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NEGATIVE_INFINITY; }
+ public boolean mutateNegativeInfinityDefault(float negative_infinity_default) { int o = __offset(124); if (o != 0) { bb.putFloat(o + bb_pos, negative_infinity_default); return true; } else { return false; } }
+ public double doubleInfDefault() { int o = __offset(126); return o != 0 ? bb.getDouble(o + bb_pos) : Double.POSITIVE_INFINITY; }
+ public boolean mutateDoubleInfDefault(double double_inf_default) { int o = __offset(126); if (o != 0) { bb.putDouble(o + bb_pos, double_inf_default); return true; } else { return false; } }
- public static void startMonster(FlatBufferBuilder builder) { builder.startTable(54); }
+ public static void startMonster(FlatBufferBuilder builder) { builder.startTable(62); }
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); }
@@ -313,6 +329,14 @@
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 void addNanDefault(FlatBufferBuilder builder, float nanDefault) { builder.addFloat(54, nanDefault, Float.NaN); }
+ public static void addInfDefault(FlatBufferBuilder builder, float infDefault) { builder.addFloat(55, infDefault, Float.POSITIVE_INFINITY); }
+ public static void addPositiveInfDefault(FlatBufferBuilder builder, float positiveInfDefault) { builder.addFloat(56, positiveInfDefault, Float.POSITIVE_INFINITY); }
+ public static void addInfinityDefault(FlatBufferBuilder builder, float infinityDefault) { builder.addFloat(57, infinityDefault, Float.POSITIVE_INFINITY); }
+ public static void addPositiveInfinityDefault(FlatBufferBuilder builder, float positiveInfinityDefault) { builder.addFloat(58, positiveInfinityDefault, Float.POSITIVE_INFINITY); }
+ public static void addNegativeInfDefault(FlatBufferBuilder builder, float negativeInfDefault) { builder.addFloat(59, negativeInfDefault, Float.NEGATIVE_INFINITY); }
+ public static void addNegativeInfinityDefault(FlatBufferBuilder builder, float negativeInfinityDefault) { builder.addFloat(60, negativeInfinityDefault, Float.NEGATIVE_INFINITY); }
+ public static void addDoubleInfDefault(FlatBufferBuilder builder, double doubleInfDefault) { builder.addDouble(61, doubleInfDefault, Double.POSITIVE_INFINITY); }
public static int endMonster(FlatBufferBuilder builder) {
int o = builder.endTable();
builder.required(o, 10); // name
@@ -533,6 +557,22 @@
_o.setLongEnumNonEnumDefault(_oLongEnumNonEnumDefault);
long _oLongEnumNormalDefault = longEnumNormalDefault();
_o.setLongEnumNormalDefault(_oLongEnumNormalDefault);
+ float _oNanDefault = nanDefault();
+ _o.setNanDefault(_oNanDefault);
+ float _oInfDefault = infDefault();
+ _o.setInfDefault(_oInfDefault);
+ float _oPositiveInfDefault = positiveInfDefault();
+ _o.setPositiveInfDefault(_oPositiveInfDefault);
+ float _oInfinityDefault = infinityDefault();
+ _o.setInfinityDefault(_oInfinityDefault);
+ float _oPositiveInfinityDefault = positiveInfinityDefault();
+ _o.setPositiveInfinityDefault(_oPositiveInfinityDefault);
+ float _oNegativeInfDefault = negativeInfDefault();
+ _o.setNegativeInfDefault(_oNegativeInfDefault);
+ float _oNegativeInfinityDefault = negativeInfinityDefault();
+ _o.setNegativeInfinityDefault(_oNegativeInfinityDefault);
+ double _oDoubleInfDefault = doubleInfDefault();
+ _o.setDoubleInfDefault(_oDoubleInfDefault);
}
public static int pack(FlatBufferBuilder builder, MonsterT _o) {
if (_o == null) return 0;
@@ -725,6 +765,14 @@
addNativeInline(builder, MyGame.Example.Test.pack(builder, _o.getNativeInline()));
addLongEnumNonEnumDefault(builder, _o.getLongEnumNonEnumDefault());
addLongEnumNormalDefault(builder, _o.getLongEnumNormalDefault());
+ addNanDefault(builder, _o.getNanDefault());
+ addInfDefault(builder, _o.getInfDefault());
+ addPositiveInfDefault(builder, _o.getPositiveInfDefault());
+ addInfinityDefault(builder, _o.getInfinityDefault());
+ addPositiveInfinityDefault(builder, _o.getPositiveInfinityDefault());
+ addNegativeInfDefault(builder, _o.getNegativeInfDefault());
+ addNegativeInfinityDefault(builder, _o.getNegativeInfinityDefault());
+ addDoubleInfDefault(builder, _o.getDoubleInfDefault());
return endMonster(builder);
}
}
diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt
index fecf665..12ee70a 100644
--- a/tests/MyGame/Example/Monster.kt
+++ b/tests/MyGame/Example/Monster.kt
@@ -870,18 +870,130 @@
false
}
}
+ val nanDefault : Float
+ get() {
+ val o = __offset(112)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.NaN
+ }
+ fun mutateNanDefault(nanDefault: Float) : Boolean {
+ val o = __offset(112)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, nanDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val infDefault : Float
+ get() {
+ val o = __offset(114)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY
+ }
+ fun mutateInfDefault(infDefault: Float) : Boolean {
+ val o = __offset(114)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, infDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val positiveInfDefault : Float
+ get() {
+ val o = __offset(116)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY
+ }
+ fun mutatePositiveInfDefault(positiveInfDefault: Float) : Boolean {
+ val o = __offset(116)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, positiveInfDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val infinityDefault : Float
+ get() {
+ val o = __offset(118)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY
+ }
+ fun mutateInfinityDefault(infinityDefault: Float) : Boolean {
+ val o = __offset(118)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, infinityDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val positiveInfinityDefault : Float
+ get() {
+ val o = __offset(120)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY
+ }
+ fun mutatePositiveInfinityDefault(positiveInfinityDefault: Float) : Boolean {
+ val o = __offset(120)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, positiveInfinityDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val negativeInfDefault : Float
+ get() {
+ val o = __offset(122)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.NEGATIVE_INFINITY
+ }
+ fun mutateNegativeInfDefault(negativeInfDefault: Float) : Boolean {
+ val o = __offset(122)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, negativeInfDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val negativeInfinityDefault : Float
+ get() {
+ val o = __offset(124)
+ return if(o != 0) bb.getFloat(o + bb_pos) else Float.NEGATIVE_INFINITY
+ }
+ fun mutateNegativeInfinityDefault(negativeInfinityDefault: Float) : Boolean {
+ val o = __offset(124)
+ return if (o != 0) {
+ bb.putFloat(o + bb_pos, negativeInfinityDefault)
+ true
+ } else {
+ false
+ }
+ }
+ val doubleInfDefault : Double
+ get() {
+ val o = __offset(126)
+ return if(o != 0) bb.getDouble(o + bb_pos) else Double.POSITIVE_INFINITY
+ }
+ fun mutateDoubleInfDefault(doubleInfDefault: Double) : Boolean {
+ val o = __offset(126)
+ return if (o != 0) {
+ bb.putDouble(o + bb_pos, doubleInfDefault)
+ true
+ } else {
+ false
+ }
+ }
override fun keysCompare(o1: Int, o2: Int, _bb: ByteBuffer) : Int {
return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb)
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster())
fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster {
_bb.order(ByteOrder.LITTLE_ENDIAN)
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(54)
+ fun startMonster(builder: FlatBufferBuilder) = builder.startTable(62)
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)
@@ -1077,6 +1189,14 @@
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 addNanDefault(builder: FlatBufferBuilder, nanDefault: Float) = builder.addFloat(54, nanDefault, Double.NaN)
+ fun addInfDefault(builder: FlatBufferBuilder, infDefault: Float) = builder.addFloat(55, infDefault, Double.POSITIVE_INFINITY)
+ fun addPositiveInfDefault(builder: FlatBufferBuilder, positiveInfDefault: Float) = builder.addFloat(56, positiveInfDefault, Double.POSITIVE_INFINITY)
+ fun addInfinityDefault(builder: FlatBufferBuilder, infinityDefault: Float) = builder.addFloat(57, infinityDefault, Double.POSITIVE_INFINITY)
+ fun addPositiveInfinityDefault(builder: FlatBufferBuilder, positiveInfinityDefault: Float) = builder.addFloat(58, positiveInfinityDefault, Double.POSITIVE_INFINITY)
+ fun addNegativeInfDefault(builder: FlatBufferBuilder, negativeInfDefault: Float) = builder.addFloat(59, negativeInfDefault, Double.NEGATIVE_INFINITY)
+ fun addNegativeInfinityDefault(builder: FlatBufferBuilder, negativeInfinityDefault: Float) = builder.addFloat(60, negativeInfinityDefault, Double.NEGATIVE_INFINITY)
+ fun addDoubleInfDefault(builder: FlatBufferBuilder, doubleInfDefault: Double) = builder.addDouble(61, doubleInfDefault, Double.POSITIVE_INFINITY)
fun endMonster(builder: FlatBufferBuilder) : Int {
val o = builder.endTable()
builder.required(o, 10)
diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua
index 6697c9b..3407362 100644
--- a/tests/MyGame/Example/Monster.lua
+++ b/tests/MyGame/Example/Monster.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
@@ -359,7 +359,7 @@
local o = self.view:Offset(62)
if o ~= 0 then
local x = self.view:Vector(o)
- x = x + ((j-1) * 4)
+ x = x + ((j-1) * 8)
local obj = __MyGame_Example_Ability.New()
obj:Init(self.view.bytes, x)
return obj
@@ -703,8 +703,72 @@
return 2
end
+function mt:NanDefault()
+ local o = self.view:Offset(112)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return nan
+end
+
+function mt:InfDefault()
+ local o = self.view:Offset(114)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return inf
+end
+
+function mt:PositiveInfDefault()
+ local o = self.view:Offset(116)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return inf
+end
+
+function mt:InfinityDefault()
+ local o = self.view:Offset(118)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return inf
+end
+
+function mt:PositiveInfinityDefault()
+ local o = self.view:Offset(120)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return inf
+end
+
+function mt:NegativeInfDefault()
+ local o = self.view:Offset(122)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return -inf
+end
+
+function mt:NegativeInfinityDefault()
+ local o = self.view:Offset(124)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float32, self.view.pos + o)
+ end
+ return -inf
+end
+
+function mt:DoubleInfDefault()
+ local o = self.view:Offset(126)
+ if o ~= 0 then
+ return self.view:Get(flatbuffers.N.Float64, self.view.pos + o)
+ end
+ return inf
+end
+
function Monster.Start(builder)
- builder:StartObject(54)
+ builder:StartObject(62)
end
function Monster.AddPos(builder, pos)
@@ -852,7 +916,7 @@
end
function Monster.StartTestarrayofsortedstructVector(builder, numElems)
- return builder:StartVector(4, numElems, 4)
+ return builder:StartVector(8, numElems, 4)
end
function Monster.AddFlex(builder, flex)
@@ -999,6 +1063,38 @@
builder:PrependUint64Slot(53, longEnumNormalDefault, 2)
end
+function Monster.AddNanDefault(builder, nanDefault)
+ builder:PrependFloat32Slot(54, nanDefault, nan)
+end
+
+function Monster.AddInfDefault(builder, infDefault)
+ builder:PrependFloat32Slot(55, infDefault, inf)
+end
+
+function Monster.AddPositiveInfDefault(builder, positiveInfDefault)
+ builder:PrependFloat32Slot(56, positiveInfDefault, inf)
+end
+
+function Monster.AddInfinityDefault(builder, infinityDefault)
+ builder:PrependFloat32Slot(57, infinityDefault, inf)
+end
+
+function Monster.AddPositiveInfinityDefault(builder, positiveInfinityDefault)
+ builder:PrependFloat32Slot(58, positiveInfinityDefault, inf)
+end
+
+function Monster.AddNegativeInfDefault(builder, negativeInfDefault)
+ builder:PrependFloat32Slot(59, negativeInfDefault, -inf)
+end
+
+function Monster.AddNegativeInfinityDefault(builder, negativeInfinityDefault)
+ builder:PrependFloat32Slot(60, negativeInfinityDefault, -inf)
+end
+
+function Monster.AddDoubleInfDefault(builder, doubleInfDefault)
+ builder:PrependFloat64Slot(61, doubleInfDefault, inf)
+end
+
function Monster.End(builder)
return builder:EndObject()
end
diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim
new file mode 100644
index 0000000..283e01a
--- /dev/null
+++ b/tests/MyGame/Example/Monster.nim
@@ -0,0 +1,734 @@
+#[ MyGame.Example.Monster
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import ../InParentNamespace as MyGame_InParentNamespace
+import Ability as MyGame_Example_Ability
+import Any as MyGame_Example_Any
+import AnyAmbiguousAliases as MyGame_Example_AnyAmbiguousAliases
+import AnyUniqueAliases as MyGame_Example_AnyUniqueAliases
+import Color as MyGame_Example_Color
+import LongEnum as MyGame_Example_LongEnum
+import Race as MyGame_Example_Race
+import Referrable as MyGame_Example_Referrable
+import Stat as MyGame_Example_Stat
+import Test as MyGame_Example_Test
+import Vec3 as MyGame_Example_Vec3
+import flatbuffers
+import std/options
+
+# an example documentation comment: "monster object"
+type Monster* = object of FlatObj
+func pos*(self: Monster): Option[MyGame_Example_Vec3.Vec3] =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return some(MyGame_Example_Vec3.Vec3(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+func mana*(self: Monster): int16 =
+ let o = self.tab.Offset(6)
+ if o != 0:
+ return Get[int16](self.tab, self.tab.Pos + o)
+ return 150
+func `mana=`*(self: var Monster, n: int16): bool =
+ return self.tab.MutateSlot(6, n)
+func hp*(self: Monster): int16 =
+ let o = self.tab.Offset(8)
+ if o != 0:
+ return Get[int16](self.tab, self.tab.Pos + o)
+ return 100
+func `hp=`*(self: var Monster, n: int16): bool =
+ return self.tab.MutateSlot(8, n)
+func name*(self: Monster): string =
+ let o = self.tab.Offset(10)
+ if o != 0:
+ return self.tab.String(self.tab.Pos + o)
+ return ""
+func inventoryLength*(self: Monster): int =
+ let o = self.tab.Offset(14)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func inventory*(self: Monster, j: int): uint8 =
+ let o = self.tab.Offset(14)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[uint8](self.tab, x)
+func inventory*(self: Monster): seq[uint8] =
+ let len = self.inventoryLength
+ for i in countup(0, len - 1):
+ result.add(self.inventory(i))
+func color*(self: Monster): MyGame_Example_Color.Color =
+ let o = self.tab.Offset(16)
+ if o != 0:
+ return MyGame_Example_Color.Color(Get[uint8](self.tab, self.tab.Pos + o))
+ return type(result)(8)
+func `color=`*(self: var Monster, n: MyGame_Example_Color.Color): bool =
+ return self.tab.MutateSlot(16, n)
+func testType*(self: Monster): MyGame_Example_Any.Any =
+ let o = self.tab.Offset(18)
+ if o != 0:
+ return MyGame_Example_Any.Any(Get[uint8](self.tab, self.tab.Pos + o))
+ return type(result)(0)
+func `testType=`*(self: var Monster, n: MyGame_Example_Any.Any): bool =
+ return self.tab.MutateSlot(18, n)
+func test*(self: Monster): Option[Vtable] =
+ let o = self.tab.Offset(20)
+ if o != 0:
+ return some(self.tab.Union(o))
+func test4Length*(self: Monster): int =
+ let o = self.tab.Offset(22)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func test4*(self: Monster, j: int): MyGame_Example_Test.Test =
+ let o = self.tab.Offset(22)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func test4*(self: Monster): seq[MyGame_Example_Test.Test] =
+ let len = self.test4Length
+ for i in countup(0, len - 1):
+ result.add(self.test4(i))
+func testarrayofstringLength*(self: Monster): int =
+ let o = self.tab.Offset(24)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testarrayofstring*(self: Monster, j: int): string =
+ let o = self.tab.Offset(24)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return self.tab.String(x)
+func testarrayofstring*(self: Monster): seq[string] =
+ let len = self.testarrayofstringLength
+ for i in countup(0, len - 1):
+ result.add(self.testarrayofstring(i))
+func testarrayoftablesLength*(self: Monster): int =
+ let o = self.tab.Offset(26)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testarrayoftables*(self: Monster, j: int): Monster =
+ let o = self.tab.Offset(26)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return Monster(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func testarrayoftables*(self: Monster): seq[Monster] =
+ let len = self.testarrayoftablesLength
+ for i in countup(0, len - 1):
+ result.add(self.testarrayoftables(i))
+func enemy*(self: Monster): Option[Monster] =
+ let o = self.tab.Offset(28)
+ if o != 0:
+ return some(Monster(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+func testnestedflatbufferLength*(self: Monster): int =
+ let o = self.tab.Offset(30)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testnestedflatbuffer*(self: Monster, j: int): uint8 =
+ let o = self.tab.Offset(30)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[uint8](self.tab, x)
+func testnestedflatbuffer*(self: Monster): seq[uint8] =
+ let len = self.testnestedflatbufferLength
+ for i in countup(0, len - 1):
+ result.add(self.testnestedflatbuffer(i))
+func testempty*(self: Monster): Option[MyGame_Example_Stat.Stat] =
+ let o = self.tab.Offset(32)
+ if o != 0:
+ return some(MyGame_Example_Stat.Stat(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+func testbool*(self: Monster): bool =
+ let o = self.tab.Offset(34)
+ if o != 0:
+ return Get[bool](self.tab, self.tab.Pos + o)
+ return false
+func `testbool=`*(self: var Monster, n: bool): bool =
+ return self.tab.MutateSlot(34, n)
+func testhashs32Fnv1*(self: Monster): int32 =
+ let o = self.tab.Offset(36)
+ if o != 0:
+ return Get[int32](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashs32Fnv1=`*(self: var Monster, n: int32): bool =
+ return self.tab.MutateSlot(36, n)
+func testhashu32Fnv1*(self: Monster): uint32 =
+ let o = self.tab.Offset(38)
+ if o != 0:
+ return Get[uint32](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashu32Fnv1=`*(self: var Monster, n: uint32): bool =
+ return self.tab.MutateSlot(38, n)
+func testhashs64Fnv1*(self: Monster): int64 =
+ let o = self.tab.Offset(40)
+ if o != 0:
+ return Get[int64](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashs64Fnv1=`*(self: var Monster, n: int64): bool =
+ return self.tab.MutateSlot(40, n)
+func testhashu64Fnv1*(self: Monster): uint64 =
+ let o = self.tab.Offset(42)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashu64Fnv1=`*(self: var Monster, n: uint64): bool =
+ return self.tab.MutateSlot(42, n)
+func testhashs32Fnv1a*(self: Monster): int32 =
+ let o = self.tab.Offset(44)
+ if o != 0:
+ return Get[int32](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashs32Fnv1a=`*(self: var Monster, n: int32): bool =
+ return self.tab.MutateSlot(44, n)
+func testhashu32Fnv1a*(self: Monster): uint32 =
+ let o = self.tab.Offset(46)
+ if o != 0:
+ return Get[uint32](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashu32Fnv1a=`*(self: var Monster, n: uint32): bool =
+ return self.tab.MutateSlot(46, n)
+func testhashs64Fnv1a*(self: Monster): int64 =
+ let o = self.tab.Offset(48)
+ if o != 0:
+ return Get[int64](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashs64Fnv1a=`*(self: var Monster, n: int64): bool =
+ return self.tab.MutateSlot(48, n)
+func testhashu64Fnv1a*(self: Monster): uint64 =
+ let o = self.tab.Offset(50)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `testhashu64Fnv1a=`*(self: var Monster, n: uint64): bool =
+ return self.tab.MutateSlot(50, n)
+func testarrayofboolsLength*(self: Monster): int =
+ let o = self.tab.Offset(52)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testarrayofbools*(self: Monster, j: int): bool =
+ let o = self.tab.Offset(52)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[bool](self.tab, x)
+func testarrayofbools*(self: Monster): seq[bool] =
+ let len = self.testarrayofboolsLength
+ for i in countup(0, len - 1):
+ result.add(self.testarrayofbools(i))
+func testf*(self: Monster): float32 =
+ let o = self.tab.Offset(54)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return 3.14159
+func `testf=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(54, n)
+func testf2*(self: Monster): float32 =
+ let o = self.tab.Offset(56)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return 3.0
+func `testf2=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(56, n)
+func testf3*(self: Monster): float32 =
+ let o = self.tab.Offset(58)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return 0.0
+func `testf3=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(58, n)
+func testarrayofstring2Length*(self: Monster): int =
+ let o = self.tab.Offset(60)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testarrayofstring2*(self: Monster, j: int): string =
+ let o = self.tab.Offset(60)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return self.tab.String(x)
+func testarrayofstring2*(self: Monster): seq[string] =
+ let len = self.testarrayofstring2Length
+ for i in countup(0, len - 1):
+ result.add(self.testarrayofstring2(i))
+func testarrayofsortedstructLength*(self: Monster): int =
+ let o = self.tab.Offset(62)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testarrayofsortedstruct*(self: Monster, j: int): MyGame_Example_Ability.Ability =
+ let o = self.tab.Offset(62)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return MyGame_Example_Ability.Ability(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func testarrayofsortedstruct*(self: Monster): seq[MyGame_Example_Ability.Ability] =
+ let len = self.testarrayofsortedstructLength
+ for i in countup(0, len - 1):
+ result.add(self.testarrayofsortedstruct(i))
+func flexLength*(self: Monster): int =
+ let o = self.tab.Offset(64)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func flex*(self: Monster, j: int): uint8 =
+ let o = self.tab.Offset(64)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[uint8](self.tab, x)
+func flex*(self: Monster): seq[uint8] =
+ let len = self.flexLength
+ for i in countup(0, len - 1):
+ result.add(self.flex(i))
+func test5Length*(self: Monster): int =
+ let o = self.tab.Offset(66)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func test5*(self: Monster, j: int): MyGame_Example_Test.Test =
+ let o = self.tab.Offset(66)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func test5*(self: Monster): seq[MyGame_Example_Test.Test] =
+ let len = self.test5Length
+ for i in countup(0, len - 1):
+ result.add(self.test5(i))
+func vectorOfLongsLength*(self: Monster): int =
+ let o = self.tab.Offset(68)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfLongs*(self: Monster, j: int): int64 =
+ let o = self.tab.Offset(68)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return Get[int64](self.tab, x)
+func vectorOfLongs*(self: Monster): seq[int64] =
+ let len = self.vectorOfLongsLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfLongs(i))
+func vectorOfDoublesLength*(self: Monster): int =
+ let o = self.tab.Offset(70)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfDoubles*(self: Monster, j: int): float64 =
+ let o = self.tab.Offset(70)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return Get[float64](self.tab, x)
+func vectorOfDoubles*(self: Monster): seq[float64] =
+ let len = self.vectorOfDoublesLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfDoubles(i))
+func parentNamespaceTest*(self: Monster): Option[MyGame_InParentNamespace.InParentNamespace] =
+ let o = self.tab.Offset(72)
+ if o != 0:
+ return some(MyGame_InParentNamespace.InParentNamespace(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+func vectorOfReferrablesLength*(self: Monster): int =
+ let o = self.tab.Offset(74)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfReferrables*(self: Monster, j: int): MyGame_Example_Referrable.Referrable =
+ let o = self.tab.Offset(74)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return MyGame_Example_Referrable.Referrable(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func vectorOfReferrables*(self: Monster): seq[MyGame_Example_Referrable.Referrable] =
+ let len = self.vectorOfReferrablesLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfReferrables(i))
+func singleWeakReference*(self: Monster): uint64 =
+ let o = self.tab.Offset(76)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `singleWeakReference=`*(self: var Monster, n: uint64): bool =
+ return self.tab.MutateSlot(76, n)
+func vectorOfWeakReferencesLength*(self: Monster): int =
+ let o = self.tab.Offset(78)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfWeakReferences*(self: Monster, j: int): uint64 =
+ let o = self.tab.Offset(78)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return Get[uint64](self.tab, x)
+func vectorOfWeakReferences*(self: Monster): seq[uint64] =
+ let len = self.vectorOfWeakReferencesLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfWeakReferences(i))
+func vectorOfStrongReferrablesLength*(self: Monster): int =
+ let o = self.tab.Offset(80)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfStrongReferrables*(self: Monster, j: int): MyGame_Example_Referrable.Referrable =
+ let o = self.tab.Offset(80)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return MyGame_Example_Referrable.Referrable(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func vectorOfStrongReferrables*(self: Monster): seq[MyGame_Example_Referrable.Referrable] =
+ let len = self.vectorOfStrongReferrablesLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfStrongReferrables(i))
+func coOwningReference*(self: Monster): uint64 =
+ let o = self.tab.Offset(82)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `coOwningReference=`*(self: var Monster, n: uint64): bool =
+ return self.tab.MutateSlot(82, n)
+func vectorOfCoOwningReferencesLength*(self: Monster): int =
+ let o = self.tab.Offset(84)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfCoOwningReferences*(self: Monster, j: int): uint64 =
+ let o = self.tab.Offset(84)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return Get[uint64](self.tab, x)
+func vectorOfCoOwningReferences*(self: Monster): seq[uint64] =
+ let len = self.vectorOfCoOwningReferencesLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfCoOwningReferences(i))
+func nonOwningReference*(self: Monster): uint64 =
+ let o = self.tab.Offset(86)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `nonOwningReference=`*(self: var Monster, n: uint64): bool =
+ return self.tab.MutateSlot(86, n)
+func vectorOfNonOwningReferencesLength*(self: Monster): int =
+ let o = self.tab.Offset(88)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfNonOwningReferences*(self: Monster, j: int): uint64 =
+ let o = self.tab.Offset(88)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return Get[uint64](self.tab, x)
+func vectorOfNonOwningReferences*(self: Monster): seq[uint64] =
+ let len = self.vectorOfNonOwningReferencesLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfNonOwningReferences(i))
+func anyUniqueType*(self: Monster): MyGame_Example_AnyUniqueAliases.AnyUniqueAliases =
+ let o = self.tab.Offset(90)
+ if o != 0:
+ return MyGame_Example_AnyUniqueAliases.AnyUniqueAliases(Get[uint8](self.tab, self.tab.Pos + o))
+ return type(result)(0)
+func `anyUniqueType=`*(self: var Monster, n: MyGame_Example_AnyUniqueAliases.AnyUniqueAliases): bool =
+ return self.tab.MutateSlot(90, n)
+func anyUnique*(self: Monster): Option[Vtable] =
+ let o = self.tab.Offset(92)
+ if o != 0:
+ return some(self.tab.Union(o))
+func anyAmbiguousType*(self: Monster): MyGame_Example_AnyAmbiguousAliases.AnyAmbiguousAliases =
+ let o = self.tab.Offset(94)
+ if o != 0:
+ return MyGame_Example_AnyAmbiguousAliases.AnyAmbiguousAliases(Get[uint8](self.tab, self.tab.Pos + o))
+ return type(result)(0)
+func `anyAmbiguousType=`*(self: var Monster, n: MyGame_Example_AnyAmbiguousAliases.AnyAmbiguousAliases): bool =
+ return self.tab.MutateSlot(94, n)
+func anyAmbiguous*(self: Monster): Option[Vtable] =
+ let o = self.tab.Offset(96)
+ if o != 0:
+ return some(self.tab.Union(o))
+func vectorOfEnumsLength*(self: Monster): int =
+ let o = self.tab.Offset(98)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vectorOfEnums*(self: Monster, j: int): MyGame_Example_Color.Color =
+ let o = self.tab.Offset(98)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return MyGame_Example_Color.Color(Get[uint8](self.tab, x))
+func vectorOfEnums*(self: Monster): seq[MyGame_Example_Color.Color] =
+ let len = self.vectorOfEnumsLength
+ for i in countup(0, len - 1):
+ result.add(self.vectorOfEnums(i))
+func signedEnum*(self: Monster): MyGame_Example_Race.Race =
+ let o = self.tab.Offset(100)
+ if o != 0:
+ return MyGame_Example_Race.Race(Get[int8](self.tab, self.tab.Pos + o))
+ return type(result)(-1)
+func `signedEnum=`*(self: var Monster, n: MyGame_Example_Race.Race): bool =
+ return self.tab.MutateSlot(100, n)
+func testrequirednestedflatbufferLength*(self: Monster): int =
+ let o = self.tab.Offset(102)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func testrequirednestedflatbuffer*(self: Monster, j: int): uint8 =
+ let o = self.tab.Offset(102)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[uint8](self.tab, x)
+func testrequirednestedflatbuffer*(self: Monster): seq[uint8] =
+ let len = self.testrequirednestedflatbufferLength
+ for i in countup(0, len - 1):
+ result.add(self.testrequirednestedflatbuffer(i))
+func scalarKeySortedTablesLength*(self: Monster): int =
+ let o = self.tab.Offset(104)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func scalarKeySortedTables*(self: Monster, j: int): MyGame_Example_Stat.Stat =
+ let o = self.tab.Offset(104)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 4.uoffset
+ return MyGame_Example_Stat.Stat(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
+func scalarKeySortedTables*(self: Monster): seq[MyGame_Example_Stat.Stat] =
+ let len = self.scalarKeySortedTablesLength
+ for i in countup(0, len - 1):
+ result.add(self.scalarKeySortedTables(i))
+func nativeInline*(self: Monster): Option[MyGame_Example_Test.Test] =
+ let o = self.tab.Offset(106)
+ if o != 0:
+ return some(MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+func longEnumNonEnumDefault*(self: Monster): MyGame_Example_LongEnum.LongEnum =
+ let o = self.tab.Offset(108)
+ if o != 0:
+ return MyGame_Example_LongEnum.LongEnum(Get[uint64](self.tab, self.tab.Pos + o))
+ return type(result)(0)
+func `longEnumNonEnumDefault=`*(self: var Monster, n: MyGame_Example_LongEnum.LongEnum): bool =
+ return self.tab.MutateSlot(108, n)
+func longEnumNormalDefault*(self: Monster): MyGame_Example_LongEnum.LongEnum =
+ let o = self.tab.Offset(110)
+ if o != 0:
+ return MyGame_Example_LongEnum.LongEnum(Get[uint64](self.tab, self.tab.Pos + o))
+ return type(result)(2)
+func `longEnumNormalDefault=`*(self: var Monster, n: MyGame_Example_LongEnum.LongEnum): bool =
+ return self.tab.MutateSlot(110, n)
+func nanDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(112)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return NaN
+func `nanDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(112, n)
+func infDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(114)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return Inf
+func `infDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(114, n)
+func positiveInfDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(116)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return Inf
+func `positiveInfDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(116, n)
+func infinityDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(118)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return Inf
+func `infinityDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(118, n)
+func positiveInfinityDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(120)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return Inf
+func `positiveInfinityDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(120, n)
+func negativeInfDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(122)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return -Inf
+func `negativeInfDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(122, n)
+func negativeInfinityDefault*(self: Monster): float32 =
+ let o = self.tab.Offset(124)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return -Inf
+func `negativeInfinityDefault=`*(self: var Monster, n: float32): bool =
+ return self.tab.MutateSlot(124, n)
+func doubleInfDefault*(self: Monster): float64 =
+ let o = self.tab.Offset(126)
+ if o != 0:
+ return Get[float64](self.tab, self.tab.Pos + o)
+ return Inf
+func `doubleInfDefault=`*(self: var Monster, n: float64): bool =
+ return self.tab.MutateSlot(126, n)
+proc MonsterStart*(builder: var Builder) =
+ builder.StartObject(62)
+proc MonsterAddpos*(builder: var Builder, pos: uoffset) =
+ builder.PrependStructSlot(0, pos, default(uoffset))
+proc MonsterAddmana*(builder: var Builder, mana: int16) =
+ builder.PrependSlot(1, mana, default(int16))
+proc MonsterAddhp*(builder: var Builder, hp: int16) =
+ builder.PrependSlot(2, hp, default(int16))
+proc MonsterAddname*(builder: var Builder, name: uoffset) =
+ builder.PrependSlot(3, name, default(uoffset))
+proc MonsterAddinventory*(builder: var Builder, inventory: uoffset) =
+ builder.PrependSlot(5, inventory, default(uoffset))
+proc MonsterStartinventoryVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MonsterAddcolor*(builder: var Builder, color: uint8) =
+ builder.PrependSlot(6, color, default(uint8))
+proc MonsterAddtestType*(builder: var Builder, testType: uint8) =
+ builder.PrependSlot(7, testType, default(uint8))
+proc MonsterAddtest*(builder: var Builder, test: uoffset) =
+ builder.PrependSlot(8, test, default(uoffset))
+proc MonsterAddtest4*(builder: var Builder, test4: uoffset) =
+ builder.PrependSlot(9, test4, default(uoffset))
+proc MonsterStarttest4Vector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 2)
+proc MonsterAddtestarrayofstring*(builder: var Builder, testarrayofstring: uoffset) =
+ builder.PrependSlot(10, testarrayofstring, default(uoffset))
+proc MonsterStarttestarrayofstringVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MonsterAddtestarrayoftables*(builder: var Builder, testarrayoftables: uoffset) =
+ builder.PrependSlot(11, testarrayoftables, default(uoffset))
+proc MonsterStarttestarrayoftablesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MonsterAddenemy*(builder: var Builder, enemy: uoffset) =
+ builder.PrependStructSlot(12, enemy, default(uoffset))
+proc MonsterAddtestnestedflatbuffer*(builder: var Builder, testnestedflatbuffer: uoffset) =
+ builder.PrependSlot(13, testnestedflatbuffer, default(uoffset))
+proc MonsterStarttestnestedflatbufferVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MonsterAddtestempty*(builder: var Builder, testempty: uoffset) =
+ builder.PrependStructSlot(14, testempty, default(uoffset))
+proc MonsterAddtestbool*(builder: var Builder, testbool: bool) =
+ builder.PrependSlot(15, testbool, default(bool))
+proc MonsterAddtesthashs32Fnv1*(builder: var Builder, testhashs32Fnv1: int32) =
+ builder.PrependSlot(16, testhashs32Fnv1, default(int32))
+proc MonsterAddtesthashu32Fnv1*(builder: var Builder, testhashu32Fnv1: uint32) =
+ builder.PrependSlot(17, testhashu32Fnv1, default(uint32))
+proc MonsterAddtesthashs64Fnv1*(builder: var Builder, testhashs64Fnv1: int64) =
+ builder.PrependSlot(18, testhashs64Fnv1, default(int64))
+proc MonsterAddtesthashu64Fnv1*(builder: var Builder, testhashu64Fnv1: uint64) =
+ builder.PrependSlot(19, testhashu64Fnv1, default(uint64))
+proc MonsterAddtesthashs32Fnv1a*(builder: var Builder, testhashs32Fnv1a: int32) =
+ builder.PrependSlot(20, testhashs32Fnv1a, default(int32))
+proc MonsterAddtesthashu32Fnv1a*(builder: var Builder, testhashu32Fnv1a: uint32) =
+ builder.PrependSlot(21, testhashu32Fnv1a, default(uint32))
+proc MonsterAddtesthashs64Fnv1a*(builder: var Builder, testhashs64Fnv1a: int64) =
+ builder.PrependSlot(22, testhashs64Fnv1a, default(int64))
+proc MonsterAddtesthashu64Fnv1a*(builder: var Builder, testhashu64Fnv1a: uint64) =
+ builder.PrependSlot(23, testhashu64Fnv1a, default(uint64))
+proc MonsterAddtestarrayofbools*(builder: var Builder, testarrayofbools: uoffset) =
+ builder.PrependSlot(24, testarrayofbools, default(uoffset))
+proc MonsterStarttestarrayofboolsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MonsterAddtestf*(builder: var Builder, testf: float32) =
+ builder.PrependSlot(25, testf, default(float32))
+proc MonsterAddtestf2*(builder: var Builder, testf2: float32) =
+ builder.PrependSlot(26, testf2, default(float32))
+proc MonsterAddtestf3*(builder: var Builder, testf3: float32) =
+ builder.PrependSlot(27, testf3, default(float32))
+proc MonsterAddtestarrayofstring2*(builder: var Builder, testarrayofstring2: uoffset) =
+ builder.PrependSlot(28, testarrayofstring2, default(uoffset))
+proc MonsterStarttestarrayofstring2Vector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MonsterAddtestarrayofsortedstruct*(builder: var Builder, testarrayofsortedstruct: uoffset) =
+ builder.PrependSlot(29, testarrayofsortedstruct, default(uoffset))
+proc MonsterStarttestarrayofsortedstructVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 4)
+proc MonsterAddflex*(builder: var Builder, flex: uoffset) =
+ builder.PrependSlot(30, flex, default(uoffset))
+proc MonsterStartflexVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MonsterAddtest5*(builder: var Builder, test5: uoffset) =
+ builder.PrependSlot(31, test5, default(uoffset))
+proc MonsterStarttest5Vector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 2)
+proc MonsterAddvectorOfLongs*(builder: var Builder, vectorOfLongs: uoffset) =
+ builder.PrependSlot(32, vectorOfLongs, default(uoffset))
+proc MonsterStartvectorOfLongsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 8)
+proc MonsterAddvectorOfDoubles*(builder: var Builder, vectorOfDoubles: uoffset) =
+ builder.PrependSlot(33, vectorOfDoubles, default(uoffset))
+proc MonsterStartvectorOfDoublesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 8)
+proc MonsterAddparentNamespaceTest*(builder: var Builder, parentNamespaceTest: uoffset) =
+ builder.PrependStructSlot(34, parentNamespaceTest, default(uoffset))
+proc MonsterAddvectorOfReferrables*(builder: var Builder, vectorOfReferrables: uoffset) =
+ builder.PrependSlot(35, vectorOfReferrables, default(uoffset))
+proc MonsterStartvectorOfReferrablesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MonsterAddsingleWeakReference*(builder: var Builder, singleWeakReference: uint64) =
+ builder.PrependSlot(36, singleWeakReference, default(uint64))
+proc MonsterAddvectorOfWeakReferences*(builder: var Builder, vectorOfWeakReferences: uoffset) =
+ builder.PrependSlot(37, vectorOfWeakReferences, default(uoffset))
+proc MonsterStartvectorOfWeakReferencesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 8)
+proc MonsterAddvectorOfStrongReferrables*(builder: var Builder, vectorOfStrongReferrables: uoffset) =
+ builder.PrependSlot(38, vectorOfStrongReferrables, default(uoffset))
+proc MonsterStartvectorOfStrongReferrablesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MonsterAddcoOwningReference*(builder: var Builder, coOwningReference: uint64) =
+ builder.PrependSlot(39, coOwningReference, default(uint64))
+proc MonsterAddvectorOfCoOwningReferences*(builder: var Builder, vectorOfCoOwningReferences: uoffset) =
+ builder.PrependSlot(40, vectorOfCoOwningReferences, default(uoffset))
+proc MonsterStartvectorOfCoOwningReferencesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 8)
+proc MonsterAddnonOwningReference*(builder: var Builder, nonOwningReference: uint64) =
+ builder.PrependSlot(41, nonOwningReference, default(uint64))
+proc MonsterAddvectorOfNonOwningReferences*(builder: var Builder, vectorOfNonOwningReferences: uoffset) =
+ builder.PrependSlot(42, vectorOfNonOwningReferences, default(uoffset))
+proc MonsterStartvectorOfNonOwningReferencesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 8)
+proc MonsterAddanyUniqueType*(builder: var Builder, anyUniqueType: uint8) =
+ builder.PrependSlot(43, anyUniqueType, default(uint8))
+proc MonsterAddanyUnique*(builder: var Builder, anyUnique: uoffset) =
+ builder.PrependSlot(44, anyUnique, default(uoffset))
+proc MonsterAddanyAmbiguousType*(builder: var Builder, anyAmbiguousType: uint8) =
+ builder.PrependSlot(45, anyAmbiguousType, default(uint8))
+proc MonsterAddanyAmbiguous*(builder: var Builder, anyAmbiguous: uoffset) =
+ builder.PrependSlot(46, anyAmbiguous, default(uoffset))
+proc MonsterAddvectorOfEnums*(builder: var Builder, vectorOfEnums: uoffset) =
+ builder.PrependSlot(47, vectorOfEnums, default(uoffset))
+proc MonsterStartvectorOfEnumsVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MonsterAddsignedEnum*(builder: var Builder, signedEnum: int8) =
+ builder.PrependSlot(48, signedEnum, default(int8))
+proc MonsterAddtestrequirednestedflatbuffer*(builder: var Builder, testrequirednestedflatbuffer: uoffset) =
+ builder.PrependSlot(49, testrequirednestedflatbuffer, default(uoffset))
+proc MonsterStarttestrequirednestedflatbufferVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc MonsterAddscalarKeySortedTables*(builder: var Builder, scalarKeySortedTables: uoffset) =
+ builder.PrependSlot(50, scalarKeySortedTables, default(uoffset))
+proc MonsterStartscalarKeySortedTablesVector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(4, numElems, 4)
+proc MonsterAddnativeInline*(builder: var Builder, nativeInline: uoffset) =
+ builder.PrependStructSlot(51, nativeInline, default(uoffset))
+proc MonsterAddlongEnumNonEnumDefault*(builder: var Builder, longEnumNonEnumDefault: uint64) =
+ builder.PrependSlot(52, longEnumNonEnumDefault, default(uint64))
+proc MonsterAddlongEnumNormalDefault*(builder: var Builder, longEnumNormalDefault: uint64) =
+ builder.PrependSlot(53, longEnumNormalDefault, default(uint64))
+proc MonsterAddnanDefault*(builder: var Builder, nanDefault: float32) =
+ builder.PrependSlot(54, nanDefault, default(float32))
+proc MonsterAddinfDefault*(builder: var Builder, infDefault: float32) =
+ builder.PrependSlot(55, infDefault, default(float32))
+proc MonsterAddpositiveInfDefault*(builder: var Builder, positiveInfDefault: float32) =
+ builder.PrependSlot(56, positiveInfDefault, default(float32))
+proc MonsterAddinfinityDefault*(builder: var Builder, infinityDefault: float32) =
+ builder.PrependSlot(57, infinityDefault, default(float32))
+proc MonsterAddpositiveInfinityDefault*(builder: var Builder, positiveInfinityDefault: float32) =
+ builder.PrependSlot(58, positiveInfinityDefault, default(float32))
+proc MonsterAddnegativeInfDefault*(builder: var Builder, negativeInfDefault: float32) =
+ builder.PrependSlot(59, negativeInfDefault, default(float32))
+proc MonsterAddnegativeInfinityDefault*(builder: var Builder, negativeInfinityDefault: float32) =
+ builder.PrependSlot(60, negativeInfinityDefault, default(float32))
+proc MonsterAdddoubleInfDefault*(builder: var Builder, doubleInfDefault: float64) =
+ builder.PrependSlot(61, doubleInfDefault, default(float64))
+proc MonsterEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example/Monster.php b/tests/MyGame/Example/Monster.php
index 5f8ad5a..29976e4 100644
--- a/tests/MyGame/Example/Monster.php
+++ b/tests/MyGame/Example/Monster.php
@@ -755,21 +755,93 @@
}
/**
+ * @return float
+ */
+ public function getNanDefault()
+ {
+ $o = $this->__offset(112);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : nan;
+ }
+
+ /**
+ * @return float
+ */
+ public function getInfDefault()
+ {
+ $o = $this->__offset(114);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : inf;
+ }
+
+ /**
+ * @return float
+ */
+ public function getPositiveInfDefault()
+ {
+ $o = $this->__offset(116);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : +inf;
+ }
+
+ /**
+ * @return float
+ */
+ public function getInfinityDefault()
+ {
+ $o = $this->__offset(118);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : infinity;
+ }
+
+ /**
+ * @return float
+ */
+ public function getPositiveInfinityDefault()
+ {
+ $o = $this->__offset(120);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : +infinity;
+ }
+
+ /**
+ * @return float
+ */
+ public function getNegativeInfDefault()
+ {
+ $o = $this->__offset(122);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : -inf;
+ }
+
+ /**
+ * @return float
+ */
+ public function getNegativeInfinityDefault()
+ {
+ $o = $this->__offset(124);
+ return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : -infinity;
+ }
+
+ /**
+ * @return double
+ */
+ public function getDoubleInfDefault()
+ {
+ $o = $this->__offset(126);
+ return $o != 0 ? $this->bb->getDouble($o + $this->bb_pos) : inf;
+ }
+
+ /**
* @param FlatBufferBuilder $builder
* @return void
*/
public static function startMonster(FlatBufferBuilder $builder)
{
- $builder->StartObject(54);
+ $builder->StartObject(62);
}
/**
* @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, $long_enum_non_enum_default, $long_enum_normal_default)
+ 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, $nan_default, $inf_default, $positive_inf_default, $infinity_default, $positive_infinity_default, $negative_inf_default, $negative_infinity_default, $double_inf_default)
{
- $builder->startObject(54);
+ $builder->startObject(62);
self::addPos($builder, $pos);
self::addMana($builder, $mana);
self::addHp($builder, $hp);
@@ -823,6 +895,14 @@
self::addNativeInline($builder, $native_inline);
self::addLongEnumNonEnumDefault($builder, $long_enum_non_enum_default);
self::addLongEnumNormalDefault($builder, $long_enum_normal_default);
+ self::addNanDefault($builder, $nan_default);
+ self::addInfDefault($builder, $inf_default);
+ self::addPositiveInfDefault($builder, $positive_inf_default);
+ self::addInfinityDefault($builder, $infinity_default);
+ self::addPositiveInfinityDefault($builder, $positive_infinity_default);
+ self::addNegativeInfDefault($builder, $negative_inf_default);
+ self::addNegativeInfinityDefault($builder, $negative_infinity_default);
+ self::addDoubleInfDefault($builder, $double_inf_default);
$o = $builder->endObject();
$builder->required($o, 10); // name
return $o;
@@ -1825,6 +1905,86 @@
/**
* @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addNanDefault(FlatBufferBuilder $builder, $nanDefault)
+ {
+ $builder->addFloatX(54, $nanDefault, nan);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addInfDefault(FlatBufferBuilder $builder, $infDefault)
+ {
+ $builder->addFloatX(55, $infDefault, inf);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addPositiveInfDefault(FlatBufferBuilder $builder, $positiveInfDefault)
+ {
+ $builder->addFloatX(56, $positiveInfDefault, +inf);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addInfinityDefault(FlatBufferBuilder $builder, $infinityDefault)
+ {
+ $builder->addFloatX(57, $infinityDefault, infinity);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addPositiveInfinityDefault(FlatBufferBuilder $builder, $positiveInfinityDefault)
+ {
+ $builder->addFloatX(58, $positiveInfinityDefault, +infinity);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addNegativeInfDefault(FlatBufferBuilder $builder, $negativeInfDefault)
+ {
+ $builder->addFloatX(59, $negativeInfDefault, -inf);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param float
+ * @return void
+ */
+ public static function addNegativeInfinityDefault(FlatBufferBuilder $builder, $negativeInfinityDefault)
+ {
+ $builder->addFloatX(60, $negativeInfinityDefault, -infinity);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
+ * @param double
+ * @return void
+ */
+ public static function addDoubleInfDefault(FlatBufferBuilder $builder, $doubleInfDefault)
+ {
+ $builder->addDoubleX(61, $doubleInfDefault, inf);
+ }
+
+ /**
+ * @param FlatBufferBuilder $builder
* @return int table offset
*/
public static function endMonster(FlatBufferBuilder $builder)
diff --git a/tests/MyGame/Example/Monster.py b/tests/MyGame/Example/Monster.py
index 0044f8d..03dda3b 100644
--- a/tests/MyGame/Example/Monster.py
+++ b/tests/MyGame/Example/Monster.py
@@ -816,7 +816,63 @@
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return 2
-def MonsterStart(builder): builder.StartObject(54)
+ # Monster
+ def NanDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(112))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('nan')
+
+ # Monster
+ def InfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(114))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def PositiveInfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(116))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def InfinityDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(118))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def PositiveInfinityDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(120))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def NegativeInfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(122))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('-inf')
+
+ # Monster
+ def NegativeInfinityDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(124))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('-inf')
+
+ # Monster
+ def DoubleInfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(126))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
+ return float('inf')
+
+def MonsterStart(builder): builder.StartObject(62)
def Start(builder):
return MonsterStart(builder)
def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0)
@@ -1052,6 +1108,30 @@
def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2)
def AddLongEnumNormalDefault(builder, longEnumNormalDefault):
return MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault)
+def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan'))
+def AddNanDefault(builder, nanDefault):
+ return MonsterAddNanDefault(builder, nanDefault)
+def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf'))
+def AddInfDefault(builder, infDefault):
+ return MonsterAddInfDefault(builder, infDefault)
+def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf'))
+def AddPositiveInfDefault(builder, positiveInfDefault):
+ return MonsterAddPositiveInfDefault(builder, positiveInfDefault)
+def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf'))
+def AddInfinityDefault(builder, infinityDefault):
+ return MonsterAddInfinityDefault(builder, infinityDefault)
+def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf'))
+def AddPositiveInfinityDefault(builder, positiveInfinityDefault):
+ return MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault)
+def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf'))
+def AddNegativeInfDefault(builder, negativeInfDefault):
+ return MonsterAddNegativeInfDefault(builder, negativeInfDefault)
+def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf'))
+def AddNegativeInfinityDefault(builder, negativeInfinityDefault):
+ return MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault)
+def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf'))
+def AddDoubleInfDefault(builder, doubleInfDefault):
+ return MonsterAddDoubleInfDefault(builder, doubleInfDefault)
def MonsterEnd(builder): return builder.EndObject()
def End(builder):
return MonsterEnd(builder)
@@ -1128,6 +1208,14 @@
self.nativeInline = None # type: Optional[MyGame.Example.Test.TestT]
self.longEnumNonEnumDefault = 0 # type: int
self.longEnumNormalDefault = 2 # type: int
+ self.nanDefault = float('nan') # type: float
+ self.infDefault = float('inf') # type: float
+ self.positiveInfDefault = float('inf') # type: float
+ self.infinityDefault = float('inf') # type: float
+ self.positiveInfinityDefault = float('inf') # type: float
+ self.negativeInfDefault = float('-inf') # type: float
+ self.negativeInfinityDefault = float('-inf') # type: float
+ self.doubleInfDefault = float('inf') # type: float
@classmethod
def InitFromBuf(cls, buf, pos):
@@ -1136,6 +1224,11 @@
return cls.InitFromObj(monster)
@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, monster):
x = MonsterT()
x._UnPack(monster)
@@ -1324,6 +1417,14 @@
self.nativeInline = MyGame.Example.Test.TestT.InitFromObj(monster.NativeInline())
self.longEnumNonEnumDefault = monster.LongEnumNonEnumDefault()
self.longEnumNormalDefault = monster.LongEnumNormalDefault()
+ self.nanDefault = monster.NanDefault()
+ self.infDefault = monster.InfDefault()
+ self.positiveInfDefault = monster.PositiveInfDefault()
+ self.infinityDefault = monster.InfinityDefault()
+ self.positiveInfinityDefault = monster.PositiveInfinityDefault()
+ self.negativeInfDefault = monster.NegativeInfDefault()
+ self.negativeInfinityDefault = monster.NegativeInfinityDefault()
+ self.doubleInfDefault = monster.DoubleInfDefault()
# MonsterT
def Pack(self, builder):
@@ -1577,5 +1678,13 @@
MonsterAddNativeInline(builder, nativeInline)
MonsterAddLongEnumNonEnumDefault(builder, self.longEnumNonEnumDefault)
MonsterAddLongEnumNormalDefault(builder, self.longEnumNormalDefault)
+ MonsterAddNanDefault(builder, self.nanDefault)
+ MonsterAddInfDefault(builder, self.infDefault)
+ MonsterAddPositiveInfDefault(builder, self.positiveInfDefault)
+ MonsterAddInfinityDefault(builder, self.infinityDefault)
+ MonsterAddPositiveInfinityDefault(builder, self.positiveInfinityDefault)
+ MonsterAddNegativeInfDefault(builder, self.negativeInfDefault)
+ MonsterAddNegativeInfinityDefault(builder, self.negativeInfinityDefault)
+ MonsterAddDoubleInfDefault(builder, self.doubleInfDefault)
monster = MonsterEnd(builder)
return monster
diff --git a/tests/MyGame/Example/MonsterT.java b/tests/MyGame/Example/MonsterT.java
index 06804c7..d4a6525 100644
--- a/tests/MyGame/Example/MonsterT.java
+++ b/tests/MyGame/Example/MonsterT.java
@@ -58,6 +58,14 @@
private MyGame.Example.TestT nativeInline;
private long longEnumNonEnumDefault;
private long longEnumNormalDefault;
+ private float nanDefault;
+ private float infDefault;
+ private float positiveInfDefault;
+ private float infinityDefault;
+ private float positiveInfinityDefault;
+ private float negativeInfDefault;
+ private float negativeInfinityDefault;
+ private double doubleInfDefault;
public MyGame.Example.Vec3T getPos() { return pos; }
@@ -259,6 +267,38 @@
public void setLongEnumNormalDefault(long longEnumNormalDefault) { this.longEnumNormalDefault = longEnumNormalDefault; }
+ public float getNanDefault() { return nanDefault; }
+
+ public void setNanDefault(float nanDefault) { this.nanDefault = nanDefault; }
+
+ public float getInfDefault() { return infDefault; }
+
+ public void setInfDefault(float infDefault) { this.infDefault = infDefault; }
+
+ public float getPositiveInfDefault() { return positiveInfDefault; }
+
+ public void setPositiveInfDefault(float positiveInfDefault) { this.positiveInfDefault = positiveInfDefault; }
+
+ public float getInfinityDefault() { return infinityDefault; }
+
+ public void setInfinityDefault(float infinityDefault) { this.infinityDefault = infinityDefault; }
+
+ public float getPositiveInfinityDefault() { return positiveInfinityDefault; }
+
+ public void setPositiveInfinityDefault(float positiveInfinityDefault) { this.positiveInfinityDefault = positiveInfinityDefault; }
+
+ public float getNegativeInfDefault() { return negativeInfDefault; }
+
+ public void setNegativeInfDefault(float negativeInfDefault) { this.negativeInfDefault = negativeInfDefault; }
+
+ public float getNegativeInfinityDefault() { return negativeInfinityDefault; }
+
+ public void setNegativeInfinityDefault(float negativeInfinityDefault) { this.negativeInfinityDefault = negativeInfinityDefault; }
+
+ public double getDoubleInfDefault() { return doubleInfDefault; }
+
+ public void setDoubleInfDefault(double doubleInfDefault) { this.doubleInfDefault = doubleInfDefault; }
+
public MonsterT() {
this.pos = new MyGame.Example.Vec3T();
@@ -311,6 +351,14 @@
this.nativeInline = new MyGame.Example.TestT();
this.longEnumNonEnumDefault = 0L;
this.longEnumNormalDefault = 2L;
+ this.nanDefault = Float.NaN;
+ this.infDefault = Float.POSITIVE_INFINITY;
+ this.positiveInfDefault = Float.POSITIVE_INFINITY;
+ this.infinityDefault = Float.POSITIVE_INFINITY;
+ this.positiveInfinityDefault = Float.POSITIVE_INFINITY;
+ this.negativeInfDefault = Float.NEGATIVE_INFINITY;
+ this.negativeInfinityDefault = Float.NEGATIVE_INFINITY;
+ this.doubleInfDefault = Double.POSITIVE_INFINITY;
}
public static MonsterT deserializeFromBinary(byte[] fbBuffer) {
return Monster.getRootAsMonster(ByteBuffer.wrap(fbBuffer)).unpack();
diff --git a/tests/MyGame/Example/NestedStruct.py b/tests/MyGame/Example/NestedStruct.py
index a9db014..7f8d18e 100644
--- a/tests/MyGame/Example/NestedStruct.py
+++ b/tests/MyGame/Example/NestedStruct.py
@@ -18,48 +18,69 @@
self._tab = flatbuffers.table.Table(buf, pos)
# NestedStruct
- 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)]
+ def A(self, j = None):
+ if j is None:
+ return [self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + i * 4)) for i in range(self.ALength())]
+ elif j >= 0 and j < self.ALength():
+ return self._tab.Get(flatbuffers.number_types.Int32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0 + j * 4))
+ else:
+ return None
+
+ # NestedStruct
+ def AAsNumpy(self):
+ return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int32Flags, self._tab.Pos + 0, self.ALength())
+
# NestedStruct
def ALength(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(0))
- if o != 0:
- return self._tab.VectorLen(o)
- return 0
+ return 2
# NestedStruct
def AIsNone(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(0))
- return o == 0
+ return False
# NestedStruct
def B(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
# NestedStruct
- 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)]
+ def C(self, j = None):
+ if j is None:
+ return [self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(9 + i * 1)) for i in range(self.CLength())]
+ elif j >= 0 and j < self.CLength():
+ return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(9 + j * 1))
+ else:
+ return None
+
+ # NestedStruct
+ def CAsNumpy(self):
+ return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int8Flags, self._tab.Pos + 9, self.CLength())
+
# NestedStruct
def CLength(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(9))
- if o != 0:
- return self._tab.VectorLen(o)
- return 0
+ return 2
# NestedStruct
def CIsNone(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(9))
- return o == 0
+ return False
# NestedStruct
- 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)]
+ def D(self, j = None):
+ if j is None:
+ return [self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16 + i * 8)) for i in range(self.DLength())]
+ elif j >= 0 and j < self.DLength():
+ return self._tab.Get(flatbuffers.number_types.Int64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16 + j * 8))
+ else:
+ return None
+
+ # NestedStruct
+ def DAsNumpy(self):
+ return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int64Flags, self._tab.Pos + 16, self.DLength())
+
# NestedStruct
def DLength(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
- if o != 0:
- return self._tab.VectorLen(o)
- return 0
+ return 2
# NestedStruct
def DIsNone(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
- return o == 0
+ return False
def CreateNestedStruct(builder, a, b, c, d):
@@ -95,6 +116,11 @@
return cls.InitFromObj(nestedStruct)
@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, nestedStruct):
x = NestedStructT()
x._UnPack(nestedStruct)
diff --git a/tests/MyGame/Example/NestedUnion/Any.py b/tests/MyGame/Example/NestedUnion/Any.py
new file mode 100644
index 0000000..e0b8594
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/Any.py
@@ -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
diff --git a/tests/MyGame/Example/NestedUnion/Color.py b/tests/MyGame/Example/NestedUnion/Color.py
new file mode 100644
index 0000000..6ba9ca1
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/Color.py
@@ -0,0 +1,12 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# namespace: NestedUnion
+
+# Composite components of Monster color.
+class Color(object):
+ Red = 1
+ # \brief color Green
+ # Green is bit_flag with value (1u << 1)
+ Green = 2
+ # \brief color Blue (1u << 3)
+ Blue = 8
diff --git a/tests/MyGame/Example/NestedUnion/NestedUnionTest.py b/tests/MyGame/Example/NestedUnion/NestedUnionTest.py
new file mode 100644
index 0000000..9a3cbee
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/NestedUnionTest.py
@@ -0,0 +1,133 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# namespace: NestedUnion
+
+import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
+
+class NestedUnionTest(object):
+ __slots__ = ['_tab']
+
+ @classmethod
+ def GetRootAs(cls, buf, offset=0):
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
+ x = NestedUnionTest()
+ x.Init(buf, n + offset)
+ return x
+
+ @classmethod
+ def GetRootAsNestedUnionTest(cls, buf, offset=0):
+ """This method is deprecated. Please switch to GetRootAs."""
+ return cls.GetRootAs(buf, offset)
+ # NestedUnionTest
+ def Init(self, buf, pos):
+ self._tab = flatbuffers.table.Table(buf, pos)
+
+ # NestedUnionTest
+ def Name(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ if o != 0:
+ return self._tab.String(o + self._tab.Pos)
+ return None
+
+ # NestedUnionTest
+ def DataType(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos)
+ return 0
+
+ # NestedUnionTest
+ def Data(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
+ if o != 0:
+ from flatbuffers.table import Table
+ obj = Table(bytearray(), 0)
+ self._tab.Union(obj, o)
+ return obj
+ return None
+
+ # NestedUnionTest
+ def Id(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Int16Flags, o + self._tab.Pos)
+ return 0
+
+def NestedUnionTestStart(builder): builder.StartObject(4)
+def Start(builder):
+ return NestedUnionTestStart(builder)
+def NestedUnionTestAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
+def AddName(builder, name):
+ return NestedUnionTestAddName(builder, name)
+def NestedUnionTestAddDataType(builder, dataType): builder.PrependUint8Slot(1, dataType, 0)
+def AddDataType(builder, dataType):
+ return NestedUnionTestAddDataType(builder, dataType)
+def NestedUnionTestAddData(builder, data): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0)
+def AddData(builder, data):
+ return NestedUnionTestAddData(builder, data)
+def NestedUnionTestAddId(builder, id): builder.PrependInt16Slot(3, id, 0)
+def AddId(builder, id):
+ return NestedUnionTestAddId(builder, id)
+def NestedUnionTestEnd(builder): return builder.EndObject()
+def End(builder):
+ return NestedUnionTestEnd(builder)
+import MyGame.Example.NestedUnion.Any
+import MyGame.Example.NestedUnion.TestSimpleTableWithEnum
+import MyGame.Example.NestedUnion.Vec3
+try:
+ from typing import Union
+except:
+ pass
+
+class NestedUnionTestT(object):
+
+ # NestedUnionTestT
+ def __init__(self):
+ self.name = None # type: str
+ self.dataType = 0 # type: int
+ self.data = None # type: Union[None, MyGame.Example.NestedUnion.Vec3.Vec3T, MyGame.Example.NestedUnion.TestSimpleTableWithEnum.TestSimpleTableWithEnumT]
+ self.id = 0 # type: int
+
+ @classmethod
+ def InitFromBuf(cls, buf, pos):
+ nestedUnionTest = NestedUnionTest()
+ nestedUnionTest.Init(buf, pos)
+ return cls.InitFromObj(nestedUnionTest)
+
+ @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, nestedUnionTest):
+ x = NestedUnionTestT()
+ x._UnPack(nestedUnionTest)
+ return x
+
+ # NestedUnionTestT
+ def _UnPack(self, nestedUnionTest):
+ if nestedUnionTest is None:
+ return
+ self.name = nestedUnionTest.Name()
+ self.dataType = nestedUnionTest.DataType()
+ self.data = MyGame.Example.NestedUnion.Any.AnyCreator(self.dataType, nestedUnionTest.Data())
+ self.id = nestedUnionTest.Id()
+
+ # NestedUnionTestT
+ def Pack(self, builder):
+ if self.name is not None:
+ name = builder.CreateString(self.name)
+ if self.data is not None:
+ data = self.data.Pack(builder)
+ NestedUnionTestStart(builder)
+ if self.name is not None:
+ NestedUnionTestAddName(builder, name)
+ NestedUnionTestAddDataType(builder, self.dataType)
+ if self.data is not None:
+ NestedUnionTestAddData(builder, data)
+ NestedUnionTestAddId(builder, self.id)
+ nestedUnionTest = NestedUnionTestEnd(builder)
+ return nestedUnionTest
diff --git a/tests/MyGame/Example/NestedUnion/Test.py b/tests/MyGame/Example/NestedUnion/Test.py
new file mode 100644
index 0000000..143d1df
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/Test.py
@@ -0,0 +1,66 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# namespace: NestedUnion
+
+import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
+
+class Test(object):
+ __slots__ = ['_tab']
+
+ @classmethod
+ def SizeOf(cls):
+ return 4
+
+ # Test
+ def Init(self, buf, pos):
+ self._tab = flatbuffers.table.Table(buf, pos)
+
+ # Test
+ def A(self): return self._tab.Get(flatbuffers.number_types.Int16Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
+ # Test
+ def B(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(2))
+
+def CreateTest(builder, a, b):
+ builder.Prep(2, 4)
+ builder.Pad(1)
+ builder.PrependInt8(b)
+ builder.PrependInt16(a)
+ return builder.Offset()
+
+
+class TestT(object):
+
+ # TestT
+ def __init__(self):
+ self.a = 0 # type: int
+ self.b = 0 # type: int
+
+ @classmethod
+ def InitFromBuf(cls, buf, pos):
+ test = Test()
+ test.Init(buf, pos)
+ return cls.InitFromObj(test)
+
+ @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, test):
+ x = TestT()
+ x._UnPack(test)
+ return x
+
+ # TestT
+ def _UnPack(self, test):
+ if test is None:
+ return
+ self.a = test.A()
+ self.b = test.B()
+
+ # TestT
+ def Pack(self, builder):
+ return CreateTest(builder, self.a, self.b)
diff --git a/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py b/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py
new file mode 100644
index 0000000..46ebc26
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py
@@ -0,0 +1,78 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# namespace: NestedUnion
+
+import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
+
+class TestSimpleTableWithEnum(object):
+ __slots__ = ['_tab']
+
+ @classmethod
+ def GetRootAs(cls, buf, offset=0):
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
+ x = TestSimpleTableWithEnum()
+ x.Init(buf, n + offset)
+ return x
+
+ @classmethod
+ def GetRootAsTestSimpleTableWithEnum(cls, buf, offset=0):
+ """This method is deprecated. Please switch to GetRootAs."""
+ return cls.GetRootAs(buf, offset)
+ # TestSimpleTableWithEnum
+ def Init(self, buf, pos):
+ self._tab = flatbuffers.table.Table(buf, pos)
+
+ # TestSimpleTableWithEnum
+ def Color(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 2
+
+def TestSimpleTableWithEnumStart(builder): builder.StartObject(1)
+def Start(builder):
+ return TestSimpleTableWithEnumStart(builder)
+def TestSimpleTableWithEnumAddColor(builder, color): builder.PrependUint8Slot(0, color, 2)
+def AddColor(builder, color):
+ return TestSimpleTableWithEnumAddColor(builder, color)
+def TestSimpleTableWithEnumEnd(builder): return builder.EndObject()
+def End(builder):
+ return TestSimpleTableWithEnumEnd(builder)
+
+class TestSimpleTableWithEnumT(object):
+
+ # TestSimpleTableWithEnumT
+ def __init__(self):
+ self.color = 2 # type: int
+
+ @classmethod
+ def InitFromBuf(cls, buf, pos):
+ testSimpleTableWithEnum = TestSimpleTableWithEnum()
+ testSimpleTableWithEnum.Init(buf, pos)
+ return cls.InitFromObj(testSimpleTableWithEnum)
+
+ @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, testSimpleTableWithEnum):
+ x = TestSimpleTableWithEnumT()
+ x._UnPack(testSimpleTableWithEnum)
+ return x
+
+ # TestSimpleTableWithEnumT
+ def _UnPack(self, testSimpleTableWithEnum):
+ if testSimpleTableWithEnum is None:
+ return
+ self.color = testSimpleTableWithEnum.Color()
+
+ # TestSimpleTableWithEnumT
+ def Pack(self, builder):
+ TestSimpleTableWithEnumStart(builder)
+ TestSimpleTableWithEnumAddColor(builder, self.color)
+ testSimpleTableWithEnum = TestSimpleTableWithEnumEnd(builder)
+ return testSimpleTableWithEnum
diff --git a/tests/MyGame/Example/NestedUnion/Vec3.py b/tests/MyGame/Example/NestedUnion/Vec3.py
new file mode 100644
index 0000000..f3bb75f
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/Vec3.py
@@ -0,0 +1,155 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# namespace: NestedUnion
+
+import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
+
+class Vec3(object):
+ __slots__ = ['_tab']
+
+ @classmethod
+ def GetRootAs(cls, buf, offset=0):
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
+ x = Vec3()
+ x.Init(buf, n + offset)
+ return x
+
+ @classmethod
+ def GetRootAsVec3(cls, buf, offset=0):
+ """This method is deprecated. Please switch to GetRootAs."""
+ return cls.GetRootAs(buf, offset)
+ # Vec3
+ def Init(self, buf, pos):
+ self._tab = flatbuffers.table.Table(buf, pos)
+
+ # Vec3
+ def X(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
+ return 0.0
+
+ # Vec3
+ def Y(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
+ return 0.0
+
+ # Vec3
+ def Z(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
+ return 0.0
+
+ # Vec3
+ def Test1(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
+ return 0.0
+
+ # Vec3
+ def Test2(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos)
+ return 0
+
+ # Vec3
+ def Test3(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
+ if o != 0:
+ x = o + self._tab.Pos
+ from MyGame.Example.NestedUnion.Test import Test
+ obj = Test()
+ obj.Init(self._tab.Bytes, x)
+ return obj
+ return None
+
+def Vec3Start(builder): builder.StartObject(6)
+def Start(builder):
+ return Vec3Start(builder)
+def Vec3AddX(builder, x): builder.PrependFloat64Slot(0, x, 0.0)
+def AddX(builder, x):
+ return Vec3AddX(builder, x)
+def Vec3AddY(builder, y): builder.PrependFloat64Slot(1, y, 0.0)
+def AddY(builder, y):
+ return Vec3AddY(builder, y)
+def Vec3AddZ(builder, z): builder.PrependFloat64Slot(2, z, 0.0)
+def AddZ(builder, z):
+ return Vec3AddZ(builder, z)
+def Vec3AddTest1(builder, test1): builder.PrependFloat64Slot(3, test1, 0.0)
+def AddTest1(builder, test1):
+ return Vec3AddTest1(builder, test1)
+def Vec3AddTest2(builder, test2): builder.PrependUint8Slot(4, test2, 0)
+def AddTest2(builder, test2):
+ return Vec3AddTest2(builder, test2)
+def Vec3AddTest3(builder, test3): builder.PrependStructSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(test3), 0)
+def AddTest3(builder, test3):
+ return Vec3AddTest3(builder, test3)
+def Vec3End(builder): return builder.EndObject()
+def End(builder):
+ return Vec3End(builder)
+import MyGame.Example.NestedUnion.Test
+try:
+ from typing import Optional
+except:
+ pass
+
+class Vec3T(object):
+
+ # Vec3T
+ def __init__(self):
+ self.x = 0.0 # type: float
+ self.y = 0.0 # type: float
+ self.z = 0.0 # type: float
+ self.test1 = 0.0 # type: float
+ self.test2 = 0 # type: int
+ self.test3 = None # type: Optional[MyGame.Example.NestedUnion.Test.TestT]
+
+ @classmethod
+ def InitFromBuf(cls, buf, pos):
+ vec3 = Vec3()
+ vec3.Init(buf, pos)
+ return cls.InitFromObj(vec3)
+
+ @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, vec3):
+ x = Vec3T()
+ x._UnPack(vec3)
+ return x
+
+ # Vec3T
+ def _UnPack(self, vec3):
+ if vec3 is None:
+ return
+ self.x = vec3.X()
+ self.y = vec3.Y()
+ self.z = vec3.Z()
+ self.test1 = vec3.Test1()
+ self.test2 = vec3.Test2()
+ if vec3.Test3() is not None:
+ self.test3 = MyGame.Example.NestedUnion.Test.TestT.InitFromObj(vec3.Test3())
+
+ # Vec3T
+ def Pack(self, builder):
+ Vec3Start(builder)
+ Vec3AddX(builder, self.x)
+ Vec3AddY(builder, self.y)
+ Vec3AddZ(builder, self.z)
+ Vec3AddTest1(builder, self.test1)
+ Vec3AddTest2(builder, self.test2)
+ if self.test3 is not None:
+ test3 = self.test3.Pack(builder)
+ Vec3AddTest3(builder, test3)
+ vec3 = Vec3End(builder)
+ return vec3
diff --git a/tests/MyGame/Example/NestedUnion/__init__.py b/tests/MyGame/Example/NestedUnion/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/MyGame/Example/NestedUnion/__init__.py
diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua
index 7aa37e5..b4f27d6 100644
--- a/tests/MyGame/Example/Race.lua
+++ b/tests/MyGame/Example/Race.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim
new file mode 100644
index 0000000..de77e1c
--- /dev/null
+++ b/tests/MyGame/Example/Race.nim
@@ -0,0 +1,15 @@
+#[ MyGame.Example.Race
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+type Race*{.pure.} = enum
+ None = -1.int8,
+ Human = 0.int8,
+ Dwarf = 1.int8,
+ Elf = 2.int8,
diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs
index a9b59c4..3d6f8a6 100644
--- a/tests/MyGame/Example/Referrable.cs
+++ b/tests/MyGame/Example/Referrable.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); }
public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java
index f28d6cb..552aa96 100644
--- a/tests/MyGame/Example/Referrable.java
+++ b/tests/MyGame/Example/Referrable.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class Referrable extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); }
public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt
index 6d4b63e..92078ac 100644
--- a/tests/MyGame/Example/Referrable.kt
+++ b/tests/MyGame/Example/Referrable.kt
@@ -36,7 +36,7 @@
return (val_1 - val_2).sign
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable())
fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua
index 1911906..f3f8396 100644
--- a/tests/MyGame/Example/Referrable.lua
+++ b/tests/MyGame/Example/Referrable.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim
new file mode 100644
index 0000000..0abc494
--- /dev/null
+++ b/tests/MyGame/Example/Referrable.nim
@@ -0,0 +1,26 @@
+#[ MyGame.Example.Referrable
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+
+type Referrable* = object of FlatObj
+func id*(self: Referrable): uint64 =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `id=`*(self: var Referrable, n: uint64): bool =
+ return self.tab.MutateSlot(4, n)
+proc ReferrableStart*(builder: var Builder) =
+ builder.StartObject(1)
+proc ReferrableAddid*(builder: var Builder, id: uint64) =
+ builder.PrependSlot(0, id, default(uint64))
+proc ReferrableEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example/Referrable.py b/tests/MyGame/Example/Referrable.py
index 4b1da6a..5fd1e24 100644
--- a/tests/MyGame/Example/Referrable.py
+++ b/tests/MyGame/Example/Referrable.py
@@ -58,6 +58,11 @@
return cls.InitFromObj(referrable)
@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, referrable):
x = ReferrableT()
x._UnPack(referrable)
diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs
index 32c05dc..9ad234f 100644
--- a/tests/MyGame/Example/Stat.cs
+++ b/tests/MyGame/Example/Stat.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); }
public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java
index 3044421..b4cd217 100644
--- a/tests/MyGame/Example/Stat.java
+++ b/tests/MyGame/Example/Stat.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class Stat extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); }
public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt
index ef6f31f..fe0a1d7 100644
--- a/tests/MyGame/Example/Stat.kt
+++ b/tests/MyGame/Example/Stat.kt
@@ -57,7 +57,7 @@
return (val_1 - val_2).sign
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat())
fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua
index bf5704b..a9848aa 100644
--- a/tests/MyGame/Example/Stat.lua
+++ b/tests/MyGame/Example/Stat.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim
new file mode 100644
index 0000000..09cda13
--- /dev/null
+++ b/tests/MyGame/Example/Stat.nim
@@ -0,0 +1,42 @@
+#[ MyGame.Example.Stat
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+import std/options
+
+type Stat* = object of FlatObj
+func id*(self: Stat): Option[string] =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return some(self.tab.String(self.tab.Pos + o))
+func val*(self: Stat): int64 =
+ let o = self.tab.Offset(6)
+ if o != 0:
+ return Get[int64](self.tab, self.tab.Pos + o)
+ return 0
+func `val=`*(self: var Stat, n: int64): bool =
+ return self.tab.MutateSlot(6, n)
+func count*(self: Stat): uint16 =
+ let o = self.tab.Offset(8)
+ if o != 0:
+ return Get[uint16](self.tab, self.tab.Pos + o)
+ return 0
+func `count=`*(self: var Stat, n: uint16): bool =
+ return self.tab.MutateSlot(8, n)
+proc StatStart*(builder: var Builder) =
+ builder.StartObject(3)
+proc StatAddid*(builder: var Builder, id: uoffset) =
+ builder.PrependSlot(0, id, default(uoffset))
+proc StatAddval*(builder: var Builder, val: int64) =
+ builder.PrependSlot(1, val, default(int64))
+proc StatAddcount*(builder: var Builder, count: uint16) =
+ builder.PrependSlot(2, count, default(uint16))
+proc StatEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example/Stat.py b/tests/MyGame/Example/Stat.py
index 3b19a3b..471bc36 100644
--- a/tests/MyGame/Example/Stat.py
+++ b/tests/MyGame/Example/Stat.py
@@ -80,6 +80,11 @@
return cls.InitFromObj(stat)
@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, stat):
x = StatT()
x._UnPack(stat)
diff --git a/tests/MyGame/Example/StructOfStructs.java b/tests/MyGame/Example/StructOfStructs.java
index 424a8a2..32c6e1f 100644
--- a/tests/MyGame/Example/StructOfStructs.java
+++ b/tests/MyGame/Example/StructOfStructs.java
@@ -52,12 +52,12 @@
}
public static int pack(FlatBufferBuilder builder, StructOfStructsT _o) {
if (_o == null) return 0;
- int _a_id = _o.getA().getId();
- int _a_distance = _o.getA().getDistance();
+ int _a_id = (int) _o.getA().getId();
+ int _a_distance = (int) _o.getA().getDistance();
short _b_a = _o.getB().getA();
byte _b_b = _o.getB().getB();
- int _c_id = _o.getC().getId();
- int _c_distance = _o.getC().getDistance();
+ int _c_id = (int) _o.getC().getId();
+ int _c_distance = (int) _o.getC().getDistance();
return createStructOfStructs(
builder,
_a_id,
diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua
index be0148b..1f3b1db 100644
--- a/tests/MyGame/Example/StructOfStructs.lua
+++ b/tests/MyGame/Example/StructOfStructs.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim
new file mode 100644
index 0000000..6cd979e
--- /dev/null
+++ b/tests/MyGame/Example/StructOfStructs.nim
@@ -0,0 +1,34 @@
+#[ MyGame.Example.StructOfStructs
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import Ability as MyGame_Example_Ability
+import Test as MyGame_Example_Test
+import flatbuffers
+
+type StructOfStructs* = object of FlatObj
+func a*(self: StructOfStructs): MyGame_Example_Ability.Ability =
+ return MyGame_Example_Ability.Ability(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 0))
+func b*(self: StructOfStructs): MyGame_Example_Test.Test =
+ return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 8))
+func c*(self: StructOfStructs): MyGame_Example_Ability.Ability =
+ return MyGame_Example_Ability.Ability(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 12))
+proc StructOfStructsCreate*(self: var Builder, a_id: uint32, a_distance: uint32, b_a: int16, b_b: int8, c_id: uint32, c_distance: uint32): uoffset =
+ self.Prep(4, 20)
+ self.Prep(4, 8)
+ self.Prepend(c_distance)
+ self.Prepend(c_id)
+ self.Prep(2, 4)
+ self.Pad(1)
+ self.Prepend(b_b)
+ self.Prepend(b_a)
+ self.Prep(4, 8)
+ self.Prepend(a_distance)
+ self.Prepend(a_id)
+ return self.Offset()
diff --git a/tests/MyGame/Example/StructOfStructs.py b/tests/MyGame/Example/StructOfStructs.py
index 0dcf3d5..88c469e 100644
--- a/tests/MyGame/Example/StructOfStructs.py
+++ b/tests/MyGame/Example/StructOfStructs.py
@@ -69,6 +69,11 @@
return cls.InitFromObj(structOfStructs)
@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, structOfStructs):
x = StructOfStructsT()
x._UnPack(structOfStructs)
diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.java b/tests/MyGame/Example/StructOfStructsOfStructs.java
index 5d5f00f..ae1f50d 100644
--- a/tests/MyGame/Example/StructOfStructsOfStructs.java
+++ b/tests/MyGame/Example/StructOfStructsOfStructs.java
@@ -47,12 +47,12 @@
}
public static int pack(FlatBufferBuilder builder, StructOfStructsOfStructsT _o) {
if (_o == null) return 0;
- int _a_a_id = _o.getA().getA().getId();
- int _a_a_distance = _o.getA().getA().getDistance();
+ int _a_a_id = (int) _o.getA().getA().getId();
+ int _a_a_distance = (int) _o.getA().getA().getDistance();
short _a_b_a = _o.getA().getB().getA();
byte _a_b_b = _o.getA().getB().getB();
- int _a_c_id = _o.getA().getC().getId();
- int _a_c_distance = _o.getA().getC().getDistance();
+ int _a_c_id = (int) _o.getA().getC().getId();
+ int _a_c_distance = (int) _o.getA().getC().getDistance();
return createStructOfStructsOfStructs(
builder,
_a_a_id,
diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua
index f8587c1..87a23a5 100644
--- a/tests/MyGame/Example/StructOfStructsOfStructs.lua
+++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim
new file mode 100644
index 0000000..de039e9
--- /dev/null
+++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim
@@ -0,0 +1,30 @@
+#[ MyGame.Example.StructOfStructsOfStructs
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import StructOfStructs as MyGame_Example_StructOfStructs
+import flatbuffers
+
+type StructOfStructsOfStructs* = object of FlatObj
+func a*(self: StructOfStructsOfStructs): MyGame_Example_StructOfStructs.StructOfStructs =
+ return MyGame_Example_StructOfStructs.StructOfStructs(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 0))
+proc StructOfStructsOfStructsCreate*(self: var Builder, a_a_id: uint32, a_a_distance: uint32, a_b_a: int16, a_b_b: int8, a_c_id: uint32, a_c_distance: uint32): uoffset =
+ self.Prep(4, 20)
+ self.Prep(4, 20)
+ self.Prep(4, 8)
+ self.Prepend(a_c_distance)
+ self.Prepend(a_c_id)
+ self.Prep(2, 4)
+ self.Pad(1)
+ self.Prepend(a_b_b)
+ self.Prepend(a_b_a)
+ self.Prep(4, 8)
+ self.Prepend(a_a_distance)
+ self.Prepend(a_a_id)
+ return self.Offset()
diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.py b/tests/MyGame/Example/StructOfStructsOfStructs.py
index edba982..0243f71 100644
--- a/tests/MyGame/Example/StructOfStructsOfStructs.py
+++ b/tests/MyGame/Example/StructOfStructsOfStructs.py
@@ -57,6 +57,11 @@
return cls.InitFromObj(structOfStructsOfStructs)
@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, structOfStructsOfStructs):
x = StructOfStructsOfStructsT()
x._UnPack(structOfStructsOfStructs)
diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua
index 74217cc..b912df0 100644
--- a/tests/MyGame/Example/Test.lua
+++ b/tests/MyGame/Example/Test.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim
new file mode 100644
index 0000000..c7ea8cc
--- /dev/null
+++ b/tests/MyGame/Example/Test.nim
@@ -0,0 +1,27 @@
+#[ MyGame.Example.Test
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+
+type Test* = object of FlatObj
+func a*(self: Test): int16 =
+ return Get[int16](self.tab, self.tab.Pos + 0)
+func `a=`*(self: var Test, n: int16): bool =
+ return self.tab.Mutate(self.tab.Pos + 0, n)
+func b*(self: Test): int8 =
+ return Get[int8](self.tab, self.tab.Pos + 2)
+func `b=`*(self: var Test, n: int8): bool =
+ return self.tab.Mutate(self.tab.Pos + 2, n)
+proc TestCreate*(self: var Builder, a: int16, b: int8): uoffset =
+ self.Prep(2, 4)
+ self.Pad(1)
+ self.Prepend(b)
+ self.Prepend(a)
+ return self.Offset()
diff --git a/tests/MyGame/Example/Test.py b/tests/MyGame/Example/Test.py
index 8357ec2..f095d33 100644
--- a/tests/MyGame/Example/Test.py
+++ b/tests/MyGame/Example/Test.py
@@ -44,6 +44,11 @@
return cls.InitFromObj(test)
@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, test):
x = TestT()
x._UnPack(test)
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs
index 837ad19..cf8c555 100644
--- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); }
public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java
index 39f9421..067d37a 100644
--- a/tests/MyGame/Example/TestSimpleTableWithEnum.java
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
final class TestSimpleTableWithEnum extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); }
public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt
index cb081fc..8268c8c 100644
--- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt
@@ -31,7 +31,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum())
fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua
index 90dcf79..ee80960 100644
--- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim
new file mode 100644
index 0000000..873527b
--- /dev/null
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim
@@ -0,0 +1,27 @@
+#[ MyGame.Example.TestSimpleTableWithEnum
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import Color as MyGame_Example_Color
+import flatbuffers
+
+type TestSimpleTableWithEnum* = object of FlatObj
+func color*(self: TestSimpleTableWithEnum): MyGame_Example_Color.Color =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return MyGame_Example_Color.Color(Get[uint8](self.tab, self.tab.Pos + o))
+ return type(result)(2)
+func `color=`*(self: var TestSimpleTableWithEnum, n: MyGame_Example_Color.Color): bool =
+ return self.tab.MutateSlot(4, n)
+proc TestSimpleTableWithEnumStart*(builder: var Builder) =
+ builder.StartObject(1)
+proc TestSimpleTableWithEnumAddcolor*(builder: var Builder, color: uint8) =
+ builder.PrependSlot(0, color, default(uint8))
+proc TestSimpleTableWithEnumEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.py b/tests/MyGame/Example/TestSimpleTableWithEnum.py
index 7f18ed2..9e58cc4 100644
--- a/tests/MyGame/Example/TestSimpleTableWithEnum.py
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.py
@@ -58,6 +58,11 @@
return cls.InitFromObj(testSimpleTableWithEnum)
@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, testSimpleTableWithEnum):
x = TestSimpleTableWithEnumT()
x._UnPack(testSimpleTableWithEnum)
diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs
index f936ad6..00b8c70 100644
--- a/tests/MyGame/Example/TypeAliases.cs
+++ b/tests/MyGame/Example/TypeAliases.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); }
public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java
index d91ca65..c8e183a 100644
--- a/tests/MyGame/Example/TypeAliases.java
+++ b/tests/MyGame/Example/TypeAliases.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class TypeAliases extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); }
public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt
index 8a2d80e..c5ca774 100644
--- a/tests/MyGame/Example/TypeAliases.kt
+++ b/tests/MyGame/Example/TypeAliases.kt
@@ -203,7 +203,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases())
fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua
index cd406c3..e6d926c 100644
--- a/tests/MyGame/Example/TypeAliases.lua
+++ b/tests/MyGame/Example/TypeAliases.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim
new file mode 100644
index 0000000..d675949
--- /dev/null
+++ b/tests/MyGame/Example/TypeAliases.nim
@@ -0,0 +1,144 @@
+#[ MyGame.Example.TypeAliases
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+import std/options
+
+type TypeAliases* = object of FlatObj
+func i8*(self: TypeAliases): int8 =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return Get[int8](self.tab, self.tab.Pos + o)
+ return 0
+func `i8=`*(self: var TypeAliases, n: int8): bool =
+ return self.tab.MutateSlot(4, n)
+func u8*(self: TypeAliases): uint8 =
+ let o = self.tab.Offset(6)
+ if o != 0:
+ return Get[uint8](self.tab, self.tab.Pos + o)
+ return 0
+func `u8=`*(self: var TypeAliases, n: uint8): bool =
+ return self.tab.MutateSlot(6, n)
+func i16*(self: TypeAliases): int16 =
+ let o = self.tab.Offset(8)
+ if o != 0:
+ return Get[int16](self.tab, self.tab.Pos + o)
+ return 0
+func `i16=`*(self: var TypeAliases, n: int16): bool =
+ return self.tab.MutateSlot(8, n)
+func u16*(self: TypeAliases): uint16 =
+ let o = self.tab.Offset(10)
+ if o != 0:
+ return Get[uint16](self.tab, self.tab.Pos + o)
+ return 0
+func `u16=`*(self: var TypeAliases, n: uint16): bool =
+ return self.tab.MutateSlot(10, n)
+func i32*(self: TypeAliases): int32 =
+ let o = self.tab.Offset(12)
+ if o != 0:
+ return Get[int32](self.tab, self.tab.Pos + o)
+ return 0
+func `i32=`*(self: var TypeAliases, n: int32): bool =
+ return self.tab.MutateSlot(12, n)
+func u32*(self: TypeAliases): uint32 =
+ let o = self.tab.Offset(14)
+ if o != 0:
+ return Get[uint32](self.tab, self.tab.Pos + o)
+ return 0
+func `u32=`*(self: var TypeAliases, n: uint32): bool =
+ return self.tab.MutateSlot(14, n)
+func i64*(self: TypeAliases): int64 =
+ let o = self.tab.Offset(16)
+ if o != 0:
+ return Get[int64](self.tab, self.tab.Pos + o)
+ return 0
+func `i64=`*(self: var TypeAliases, n: int64): bool =
+ return self.tab.MutateSlot(16, n)
+func u64*(self: TypeAliases): uint64 =
+ let o = self.tab.Offset(18)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `u64=`*(self: var TypeAliases, n: uint64): bool =
+ return self.tab.MutateSlot(18, n)
+func f32*(self: TypeAliases): float32 =
+ let o = self.tab.Offset(20)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return 0.0
+func `f32=`*(self: var TypeAliases, n: float32): bool =
+ return self.tab.MutateSlot(20, n)
+func f64*(self: TypeAliases): float64 =
+ let o = self.tab.Offset(22)
+ if o != 0:
+ return Get[float64](self.tab, self.tab.Pos + o)
+ return 0.0
+func `f64=`*(self: var TypeAliases, n: float64): bool =
+ return self.tab.MutateSlot(22, n)
+func v8Length*(self: TypeAliases): int =
+ let o = self.tab.Offset(24)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func v8*(self: TypeAliases, j: int): int8 =
+ let o = self.tab.Offset(24)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 1.uoffset
+ return Get[int8](self.tab, x)
+func v8*(self: TypeAliases): seq[int8] =
+ let len = self.v8Length
+ for i in countup(0, len - 1):
+ result.add(self.v8(i))
+func vf64Length*(self: TypeAliases): int =
+ let o = self.tab.Offset(26)
+ if o != 0:
+ return self.tab.VectorLen(o)
+func vf64*(self: TypeAliases, j: int): float64 =
+ let o = self.tab.Offset(26)
+ if o != 0:
+ var x = self.tab.Vector(o)
+ x += j.uoffset * 8.uoffset
+ return Get[float64](self.tab, x)
+func vf64*(self: TypeAliases): seq[float64] =
+ let len = self.vf64Length
+ for i in countup(0, len - 1):
+ result.add(self.vf64(i))
+proc TypeAliasesStart*(builder: var Builder) =
+ builder.StartObject(12)
+proc TypeAliasesAddi8*(builder: var Builder, i8: int8) =
+ builder.PrependSlot(0, i8, default(int8))
+proc TypeAliasesAddu8*(builder: var Builder, u8: uint8) =
+ builder.PrependSlot(1, u8, default(uint8))
+proc TypeAliasesAddi16*(builder: var Builder, i16: int16) =
+ builder.PrependSlot(2, i16, default(int16))
+proc TypeAliasesAddu16*(builder: var Builder, u16: uint16) =
+ builder.PrependSlot(3, u16, default(uint16))
+proc TypeAliasesAddi32*(builder: var Builder, i32: int32) =
+ builder.PrependSlot(4, i32, default(int32))
+proc TypeAliasesAddu32*(builder: var Builder, u32: uint32) =
+ builder.PrependSlot(5, u32, default(uint32))
+proc TypeAliasesAddi64*(builder: var Builder, i64: int64) =
+ builder.PrependSlot(6, i64, default(int64))
+proc TypeAliasesAddu64*(builder: var Builder, u64: uint64) =
+ builder.PrependSlot(7, u64, default(uint64))
+proc TypeAliasesAddf32*(builder: var Builder, f32: float32) =
+ builder.PrependSlot(8, f32, default(float32))
+proc TypeAliasesAddf64*(builder: var Builder, f64: float64) =
+ builder.PrependSlot(9, f64, default(float64))
+proc TypeAliasesAddv8*(builder: var Builder, v8: uoffset) =
+ builder.PrependSlot(10, v8, default(uoffset))
+proc TypeAliasesStartv8Vector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(1, numElems, 1)
+proc TypeAliasesAddvf64*(builder: var Builder, vf64: uoffset) =
+ builder.PrependSlot(11, vf64, default(uoffset))
+proc TypeAliasesStartvf64Vector*(builder: var Builder, numElems: uoffset) =
+ builder.StartVector(8, numElems, 8)
+proc TypeAliasesEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example/TypeAliases.py b/tests/MyGame/Example/TypeAliases.py
index 8b0ea19..b302049 100644
--- a/tests/MyGame/Example/TypeAliases.py
+++ b/tests/MyGame/Example/TypeAliases.py
@@ -229,6 +229,11 @@
return cls.InitFromObj(typeAliases)
@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, typeAliases):
x = TypeAliasesT()
x._UnPack(typeAliases)
diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua
index 796ac7a..89b2bfb 100644
--- a/tests/MyGame/Example/Vec3.lua
+++ b/tests/MyGame/Example/Vec3.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim
new file mode 100644
index 0000000..9131fe8
--- /dev/null
+++ b/tests/MyGame/Example/Vec3.nim
@@ -0,0 +1,52 @@
+#[ MyGame.Example.Vec3
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import Color as MyGame_Example_Color
+import Test as MyGame_Example_Test
+import flatbuffers
+
+type Vec3* = object of FlatObj
+func x*(self: Vec3): float32 =
+ return Get[float32](self.tab, self.tab.Pos + 0)
+func `x=`*(self: var Vec3, n: float32): bool =
+ return self.tab.Mutate(self.tab.Pos + 0, n)
+func y*(self: Vec3): float32 =
+ return Get[float32](self.tab, self.tab.Pos + 4)
+func `y=`*(self: var Vec3, n: float32): bool =
+ return self.tab.Mutate(self.tab.Pos + 4, n)
+func z*(self: Vec3): float32 =
+ return Get[float32](self.tab, self.tab.Pos + 8)
+func `z=`*(self: var Vec3, n: float32): bool =
+ return self.tab.Mutate(self.tab.Pos + 8, n)
+func test1*(self: Vec3): float64 =
+ return Get[float64](self.tab, self.tab.Pos + 16)
+func `test1=`*(self: var Vec3, n: float64): bool =
+ return self.tab.Mutate(self.tab.Pos + 16, n)
+func test2*(self: Vec3): MyGame_Example_Color.Color =
+ return MyGame_Example_Color.Color(Get[uint8](self.tab, self.tab.Pos + 24))
+func `test2=`*(self: var Vec3, n: MyGame_Example_Color.Color): bool =
+ return self.tab.Mutate(self.tab.Pos + 24, n)
+func test3*(self: Vec3): MyGame_Example_Test.Test =
+ return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 26))
+proc Vec3Create*(self: var Builder, x: float32, y: float32, z: float32, test1: float64, test2: MyGame_Example_Color.Color, test3_a: int16, test3_b: int8): uoffset =
+ self.Prep(8, 32)
+ self.Pad(2)
+ self.Prep(2, 4)
+ self.Pad(1)
+ self.Prepend(test3_b)
+ self.Prepend(test3_a)
+ self.Pad(1)
+ self.Prepend(test2)
+ self.Prepend(test1)
+ self.Pad(4)
+ self.Prepend(z)
+ self.Prepend(y)
+ self.Prepend(x)
+ return self.Offset()
diff --git a/tests/MyGame/Example/Vec3.py b/tests/MyGame/Example/Vec3.py
index 69cd511..3a394a2 100644
--- a/tests/MyGame/Example/Vec3.py
+++ b/tests/MyGame/Example/Vec3.py
@@ -73,6 +73,11 @@
return cls.InitFromObj(vec3)
@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, vec3):
x = Vec3T()
x._UnPack(vec3)
diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs
index af736e7..575d77e 100644
--- a/tests/MyGame/Example2/Monster.cs
+++ b/tests/MyGame/Example2/Monster.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); }
public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java
index 8065218..4697f4d 100644
--- a/tests/MyGame/Example2/Monster.java
+++ b/tests/MyGame/Example2/Monster.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class Monster extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); }
public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt
index b5a148f..01f60a6 100644
--- a/tests/MyGame/Example2/Monster.kt
+++ b/tests/MyGame/Example2/Monster.kt
@@ -17,7 +17,7 @@
return this
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster())
fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua
index ddf4738..db43d8e 100644
--- a/tests/MyGame/Example2/Monster.lua
+++ b/tests/MyGame/Example2/Monster.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim
new file mode 100644
index 0000000..1a1a7e3
--- /dev/null
+++ b/tests/MyGame/Example2/Monster.nim
@@ -0,0 +1,17 @@
+#[ MyGame.Example2.Monster
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+
+type Monster* = object of FlatObj
+proc MonsterStart*(builder: var Builder) =
+ builder.StartObject(0)
+proc MonsterEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/Example2/Monster.py b/tests/MyGame/Example2/Monster.py
index 893ea9b..020efef 100644
--- a/tests/MyGame/Example2/Monster.py
+++ b/tests/MyGame/Example2/Monster.py
@@ -48,6 +48,11 @@
return cls.InitFromObj(monster)
@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, monster):
x = MonsterT()
x._UnPack(monster)
diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs
index 6237e7c..43fb074 100644
--- a/tests/MyGame/InParentNamespace.cs
+++ b/tests/MyGame/InParentNamespace.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); }
public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java
index c525ed5..26e5aa1 100644
--- a/tests/MyGame/InParentNamespace.java
+++ b/tests/MyGame/InParentNamespace.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class InParentNamespace extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); }
public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt
index 7bed058..5be2ca4 100644
--- a/tests/MyGame/InParentNamespace.kt
+++ b/tests/MyGame/InParentNamespace.kt
@@ -17,7 +17,7 @@
return this
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace())
fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua
index 9115666..9d7f498 100644
--- a/tests/MyGame/InParentNamespace.lua
+++ b/tests/MyGame/InParentNamespace.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //monster_test.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim
new file mode 100644
index 0000000..cd1397f
--- /dev/null
+++ b/tests/MyGame/InParentNamespace.nim
@@ -0,0 +1,17 @@
+#[ MyGame.InParentNamespace
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+
+type InParentNamespace* = object of FlatObj
+proc InParentNamespaceStart*(builder: var Builder) =
+ builder.StartObject(0)
+proc InParentNamespaceEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/InParentNamespace.py b/tests/MyGame/InParentNamespace.py
index 197072b..0914aa4 100644
--- a/tests/MyGame/InParentNamespace.py
+++ b/tests/MyGame/InParentNamespace.py
@@ -48,6 +48,11 @@
return cls.InitFromObj(inParentNamespace)
@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, inParentNamespace):
x = InParentNamespaceT()
x._UnPack(inParentNamespace)
diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs
index 0236856..c964dd7 100644
--- a/tests/MyGame/MonsterExtra.cs
+++ b/tests/MyGame/MonsterExtra.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); }
public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); }
diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java
index fdaf40b..3e5fbcd 100644
--- a/tests/MyGame/MonsterExtra.java
+++ b/tests/MyGame/MonsterExtra.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class MonsterExtra extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); }
public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); }
diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt
index 3c8760c..d999e46 100644
--- a/tests/MyGame/MonsterExtra.kt
+++ b/tests/MyGame/MonsterExtra.kt
@@ -175,7 +175,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra())
fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/MyGame/MonsterExtra.py b/tests/MyGame/MonsterExtra.py
index f7288b6..b30ee6e 100644
--- a/tests/MyGame/MonsterExtra.py
+++ b/tests/MyGame/MonsterExtra.py
@@ -207,6 +207,11 @@
return cls.InitFromObj(monsterExtra)
@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, monsterExtra):
x = MonsterExtraT()
x._UnPack(monsterExtra)
diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua
index 64d894e..a98cec9 100644
--- a/tests/MyGame/OtherNameSpace/FromInclude.lua
+++ b/tests/MyGame/OtherNameSpace/FromInclude.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //include_test/sub/include_test2.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim
new file mode 100644
index 0000000..36efea6
--- /dev/null
+++ b/tests/MyGame/OtherNameSpace/FromInclude.nim
@@ -0,0 +1,12 @@
+#[ MyGame.OtherNameSpace.FromInclude
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+type FromInclude*{.pure.} = enum
+ IncludeVal = 0.int64,
diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua
index 1f76c88..6e24cdf 100644
--- a/tests/MyGame/OtherNameSpace/TableB.lua
+++ b/tests/MyGame/OtherNameSpace/TableB.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //include_test/sub/include_test2.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim
new file mode 100644
index 0000000..8026fb0
--- /dev/null
+++ b/tests/MyGame/OtherNameSpace/TableB.nim
@@ -0,0 +1,25 @@
+#[ MyGame.OtherNameSpace.TableB
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import ../../TableA as TableA
+import flatbuffers
+import std/options
+
+type TableB* = object of FlatObj
+func a*(self: TableB): Option[TableA.TableA] =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return some(TableA.TableA(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+proc TableBstart*(builder: var Builder) =
+ builder.StartObject(1)
+proc TableBadda*(builder: var Builder, a: uoffset) =
+ builder.PrependStructSlot(0, a, default(uoffset))
+proc TableBend*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua
index 155a04e..9745a24 100644
--- a/tests/MyGame/OtherNameSpace/Unused.lua
+++ b/tests/MyGame/OtherNameSpace/Unused.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //include_test/sub/include_test2.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim
new file mode 100644
index 0000000..fd3b624
--- /dev/null
+++ b/tests/MyGame/OtherNameSpace/Unused.nim
@@ -0,0 +1,21 @@
+#[ MyGame.OtherNameSpace.Unused
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import flatbuffers
+
+type Unused* = object of FlatObj
+func a*(self: Unused): int32 =
+ return Get[int32](self.tab, self.tab.Pos + 0)
+func `a=`*(self: var Unused, n: int32): bool =
+ return self.tab.Mutate(self.tab.Pos + 0, n)
+proc UnusedCreate*(self: var Builder, a: int32): uoffset =
+ self.Prep(4, 4)
+ self.Prepend(a)
+ return self.Offset()
diff --git a/tests/Property.nim b/tests/Property.nim
new file mode 100644
index 0000000..ae47ccd
--- /dev/null
+++ b/tests/Property.nim
@@ -0,0 +1,20 @@
+#[ Property
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+]#
+
+import flatbuffers
+
+type Property* = object of FlatObj
+func property*(self: Property): bool =
+ return Get[bool](self.tab, self.tab.Pos + 0)
+func `property=`*(self: var Property, n: bool): bool =
+ return self.tab.Mutate(self.tab.Pos + 0, n)
+proc PropertyCreate*(self: var Builder, property: bool): uoffset =
+ self.Prep(1, 1)
+ self.Prepend(property)
+ return self.Offset()
diff --git a/tests/PythonTest.sh b/tests/PythonTest.sh
index 00772ea..925bd95 100755
--- a/tests/PythonTest.sh
+++ b/tests/PythonTest.sh
@@ -17,12 +17,14 @@
pushd "$(dirname $0)" >/dev/null
test_dir="$(pwd)"
gen_code_path=${test_dir}
-runtime_library_dir=${test_dir}/../python
+runtime_library_dir=${test_dir}/../../python
# Emit Python code for the example schema in the test dir:
${test_dir}/../flatc -p -o ${gen_code_path} -I include_test monster_test.fbs --gen-object-api
${test_dir}/../flatc -p -o ${gen_code_path} -I include_test monster_test.fbs --gen-object-api --gen-onefile
${test_dir}/../flatc -p -o ${gen_code_path} -I include_test monster_extra.fbs --gen-object-api
+${test_dir}/../flatc -p -o ${gen_code_path} -I include_test arrays_test.fbs --gen-object-api
+${test_dir}/../flatc -p -o ${gen_code_path} -I include_test nested_union_test.fbs --gen-object-api
# Syntax: run_tests <interpreter> <benchmark vtable dedupes>
# <benchmark read count> <benchmark build count>
@@ -73,7 +75,7 @@
PYTHONDONTWRITEBYTECODE=1 \
PYTHONPATH=${runtime_library_dir}:${gen_code_path} \
- coverage run --source=flatbuffers,MyGame py_test.py 0 0 0 > /dev/null
+ coverage run --source=flatbuffers,MyGame py_test.py 0 0 0 false > /dev/null
echo
cov_result=`coverage report --omit="*flatbuffers/vendor*,*py_test*" \
diff --git a/tests/RustTest.bat b/tests/RustTest.bat
index e897534..236cd9d 100644
--- a/tests/RustTest.bat
+++ b/tests/RustTest.bat
@@ -21,3 +21,10 @@
cargo run --bin=flexbuffers_alloc_check || exit /b 1
cargo run --bin=monster_example || exit /b 1
cd ..
+
+cd rust_no_std_compilation_test
+rustup install nightly
+rustup component add rust-src --toolchain nightly
+rustup target add thumbv7m-none-eabi
+cargo build || exit /b 1
+cd ..
diff --git a/tests/RustTest.sh b/tests/RustTest.sh
index c0e1f9e..1e7d0ee 100755
--- a/tests/RustTest.sh
+++ b/tests/RustTest.sh
@@ -35,11 +35,18 @@
cargo run $TARGET_FLAG -- --quiet
check_test_result "Rust serde tests"
+cd ../rust_no_std_compilation_test
+rustup install nightly
+rustup component add rust-src --toolchain nightly
+rustup target add thumbv7m-none-eabi
+cargo +nightly build
+check_test_result "Rust flatbuffers test no_std compilation"
+
cd ../rust_usage_test
cargo test $TARGET_FLAG -- --quiet
check_test_result "Rust tests"
-cargo test $TARGET_FLAG --no-default-features --features no_std -- --quiet
+cargo test $TARGET_FLAG --no-default-features -- --quiet
check_test_result "Rust tests (no_std)"
cargo run $TARGET_FLAG --bin=flatbuffers_alloc_check
@@ -48,13 +55,9 @@
cargo run $TARGET_FLAG --bin=flexbuffers_alloc_check
check_test_result "Rust flexbuffers heap alloc test"
-# TODO(caspern): Fix this.
-# Temporarily disabled due to error in upstream configuration
-# https://github.com/google/flatbuffers/issues/6491
-#
-# rustup component add clippy
-# cargo clippy $TARGET_FLAG
-# check_test_result "No Cargo clippy lints test"
+rustup component add clippy
+cargo clippy $TARGET_FLAG
+check_test_result "No Cargo clippy lints test"
cargo bench $TARGET_FLAG
diff --git a/tests/TableA.lua b/tests/TableA.lua
index 312f82d..472f7ea 100644
--- a/tests/TableA.lua
+++ b/tests/TableA.lua
@@ -3,7 +3,7 @@
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
- flatc version: 2.0.8
+ flatc version: 22.10.26
Declared by : //include_test/include_test1.fbs
Rooting type : MyGame.Example.Monster (//monster_test.fbs)
diff --git a/tests/TableA.nim b/tests/TableA.nim
new file mode 100644
index 0000000..2c4e283
--- /dev/null
+++ b/tests/TableA.nim
@@ -0,0 +1,25 @@
+#[ TableA
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : MyGame.Example.Monster ()
+]#
+
+import MyGame/OtherNameSpace/TableB as MyGame_OtherNameSpace_TableB
+import flatbuffers
+import std/options
+
+type TableA* = object of FlatObj
+func b*(self: TableA): Option[MyGame_OtherNameSpace_TableB.TableB] =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return some(MyGame_OtherNameSpace_TableB.TableB(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+proc TableAstart*(builder: var Builder) =
+ builder.StartObject(1)
+proc TableAaddb*(builder: var Builder, b: uoffset) =
+ builder.PrependStructSlot(0, b, default(uoffset))
+proc TableAend*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim
new file mode 100644
index 0000000..0b0ac15
--- /dev/null
+++ b/tests/TestMutatingBool.nim
@@ -0,0 +1,24 @@
+#[ TestMutatingBool
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+]#
+
+import Property as Property
+import flatbuffers
+import std/options
+
+type TestMutatingBool* = object of FlatObj
+func b*(self: TestMutatingBool): Option[Property.Property] =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return some(Property.Property(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
+proc TestMutatingBoolStart*(builder: var Builder) =
+ builder.StartObject(1)
+proc TestMutatingBoolAddb*(builder: var Builder, b: uoffset) =
+ builder.PrependStructSlot(0, b, default(uoffset))
+proc TestMutatingBoolEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/alignment_test.cpp b/tests/alignment_test.cpp
new file mode 100644
index 0000000..1026fc3
--- /dev/null
+++ b/tests/alignment_test.cpp
@@ -0,0 +1,31 @@
+#include "alignment_test.h"
+
+#include "flatbuffers/flatbuffer_builder.h"
+#include "alignment_test_generated.h"
+#include "test_assert.h"
+
+namespace flatbuffers {
+namespace tests {
+
+void AlignmentTest() {
+ FlatBufferBuilder builder;
+
+ BadAlignmentLarge large;
+ Offset<OuterLarge> outer_large = CreateOuterLarge(builder, &large);
+
+ BadAlignmentSmall *small;
+ Offset<Vector<const BadAlignmentSmall *>> small_offset =
+ builder.CreateUninitializedVectorOfStructs(9, &small);
+ (void)small; // We do not have to write data to trigger the test failure
+
+ Offset<BadAlignmentRoot> root =
+ CreateBadAlignmentRoot(builder, outer_large, small_offset);
+
+ builder.Finish(root);
+
+ Verifier verifier(builder.GetBufferPointer(), builder.GetSize());
+ TEST_ASSERT(VerifyBadAlignmentRootBuffer(verifier));
+}
+
+} // namespace tests
+} // namespace flatbuffers
diff --git a/tests/alignment_test.fbs b/tests/alignment_test.fbs
new file mode 100644
index 0000000..3fc08bd
--- /dev/null
+++ b/tests/alignment_test.fbs
@@ -0,0 +1,24 @@
+// sizeof(BadAlignmentSmall) == 12
+// alignof(BadAlignmentSmall) == 4
+struct BadAlignmentSmall {
+ var_0: uint;
+ var_1: uint;
+ var_2: uint;
+}
+
+// sizeof(BadAlignmentLarge) == 8
+// alignof(BadAlignmentLarge) == 8
+struct BadAlignmentLarge {
+ var_0: ulong;
+}
+
+table OuterLarge {
+ large: BadAlignmentLarge;
+}
+
+table BadAlignmentRoot {
+ large: OuterLarge;
+ small: [BadAlignmentSmall];
+}
+
+root_type BadAlignmentRoot;
diff --git a/tests/alignment_test.h b/tests/alignment_test.h
new file mode 100644
index 0000000..68cdf0b
--- /dev/null
+++ b/tests/alignment_test.h
@@ -0,0 +1,12 @@
+#ifndef TESTS_ALIGNMENT_TEST_H
+#define TESTS_ALIGNMENT_TEST_H
+
+namespace flatbuffers {
+namespace tests {
+
+void AlignmentTest();
+
+} // namespace tests
+} // namespace flatbuffers
+
+#endif
diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h
new file mode 100644
index 0000000..44f6157
--- /dev/null
+++ b/tests/alignment_test_generated.h
@@ -0,0 +1,497 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+
+
+#ifndef FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_
+#define FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_
+
+#include "flatbuffers/flatbuffers.h"
+
+// Ensure the included flatbuffers.h is the same version as when this file was
+// generated, otherwise it may not be compatible.
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
+ "Non-compatible flatbuffers version included");
+
+struct BadAlignmentSmall;
+
+struct BadAlignmentLarge;
+
+struct OuterLarge;
+struct OuterLargeBuilder;
+struct OuterLargeT;
+
+struct BadAlignmentRoot;
+struct BadAlignmentRootBuilder;
+struct BadAlignmentRootT;
+
+bool operator==(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs);
+bool operator!=(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs);
+bool operator==(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs);
+bool operator!=(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs);
+bool operator==(const OuterLargeT &lhs, const OuterLargeT &rhs);
+bool operator!=(const OuterLargeT &lhs, const OuterLargeT &rhs);
+bool operator==(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs);
+bool operator!=(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs);
+
+inline const flatbuffers::TypeTable *BadAlignmentSmallTypeTable();
+
+inline const flatbuffers::TypeTable *BadAlignmentLargeTypeTable();
+
+inline const flatbuffers::TypeTable *OuterLargeTypeTable();
+
+inline const flatbuffers::TypeTable *BadAlignmentRootTypeTable();
+
+FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BadAlignmentSmall FLATBUFFERS_FINAL_CLASS {
+ private:
+ uint32_t var_0_;
+ uint32_t var_1_;
+ uint32_t var_2_;
+
+ public:
+ static const flatbuffers::TypeTable *MiniReflectTypeTable() {
+ return BadAlignmentSmallTypeTable();
+ }
+ BadAlignmentSmall()
+ : var_0_(0),
+ var_1_(0),
+ var_2_(0) {
+ }
+ BadAlignmentSmall(uint32_t _var_0, uint32_t _var_1, uint32_t _var_2)
+ : var_0_(flatbuffers::EndianScalar(_var_0)),
+ var_1_(flatbuffers::EndianScalar(_var_1)),
+ var_2_(flatbuffers::EndianScalar(_var_2)) {
+ }
+ uint32_t var_0() const {
+ return flatbuffers::EndianScalar(var_0_);
+ }
+ void mutate_var_0(uint32_t _var_0) {
+ flatbuffers::WriteScalar(&var_0_, _var_0);
+ }
+ uint32_t var_1() const {
+ return flatbuffers::EndianScalar(var_1_);
+ }
+ void mutate_var_1(uint32_t _var_1) {
+ flatbuffers::WriteScalar(&var_1_, _var_1);
+ }
+ uint32_t var_2() const {
+ return flatbuffers::EndianScalar(var_2_);
+ }
+ void mutate_var_2(uint32_t _var_2) {
+ flatbuffers::WriteScalar(&var_2_, _var_2);
+ }
+};
+FLATBUFFERS_STRUCT_END(BadAlignmentSmall, 12);
+
+inline bool operator==(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs) {
+ return
+ (lhs.var_0() == rhs.var_0()) &&
+ (lhs.var_1() == rhs.var_1()) &&
+ (lhs.var_2() == rhs.var_2());
+}
+
+inline bool operator!=(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs) {
+ return !(lhs == rhs);
+}
+
+
+FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) BadAlignmentLarge FLATBUFFERS_FINAL_CLASS {
+ private:
+ uint64_t var_0_;
+
+ public:
+ static const flatbuffers::TypeTable *MiniReflectTypeTable() {
+ return BadAlignmentLargeTypeTable();
+ }
+ BadAlignmentLarge()
+ : var_0_(0) {
+ }
+ BadAlignmentLarge(uint64_t _var_0)
+ : var_0_(flatbuffers::EndianScalar(_var_0)) {
+ }
+ uint64_t var_0() const {
+ return flatbuffers::EndianScalar(var_0_);
+ }
+ void mutate_var_0(uint64_t _var_0) {
+ flatbuffers::WriteScalar(&var_0_, _var_0);
+ }
+};
+FLATBUFFERS_STRUCT_END(BadAlignmentLarge, 8);
+
+inline bool operator==(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs) {
+ return
+ (lhs.var_0() == rhs.var_0());
+}
+
+inline bool operator!=(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs) {
+ return !(lhs == rhs);
+}
+
+
+struct OuterLargeT : public flatbuffers::NativeTable {
+ typedef OuterLarge TableType;
+ flatbuffers::unique_ptr<BadAlignmentLarge> large{};
+ OuterLargeT() = default;
+ OuterLargeT(const OuterLargeT &o);
+ OuterLargeT(OuterLargeT&&) FLATBUFFERS_NOEXCEPT = default;
+ OuterLargeT &operator=(OuterLargeT o) FLATBUFFERS_NOEXCEPT;
+};
+
+struct OuterLarge FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
+ typedef OuterLargeT NativeTableType;
+ typedef OuterLargeBuilder Builder;
+ static const flatbuffers::TypeTable *MiniReflectTypeTable() {
+ return OuterLargeTypeTable();
+ }
+ enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
+ VT_LARGE = 4
+ };
+ const BadAlignmentLarge *large() const {
+ return GetStruct<const BadAlignmentLarge *>(VT_LARGE);
+ }
+ BadAlignmentLarge *mutable_large() {
+ return GetStruct<BadAlignmentLarge *>(VT_LARGE);
+ }
+ bool Verify(flatbuffers::Verifier &verifier) const {
+ return VerifyTableStart(verifier) &&
+ VerifyField<BadAlignmentLarge>(verifier, VT_LARGE, 8) &&
+ verifier.EndTable();
+ }
+ OuterLargeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
+ void UnPackTo(OuterLargeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
+ static flatbuffers::Offset<OuterLarge> Pack(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+};
+
+struct OuterLargeBuilder {
+ typedef OuterLarge Table;
+ flatbuffers::FlatBufferBuilder &fbb_;
+ flatbuffers::uoffset_t start_;
+ void add_large(const BadAlignmentLarge *large) {
+ fbb_.AddStruct(OuterLarge::VT_LARGE, large);
+ }
+ explicit OuterLargeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
+ : fbb_(_fbb) {
+ start_ = fbb_.StartTable();
+ }
+ flatbuffers::Offset<OuterLarge> Finish() {
+ const auto end = fbb_.EndTable(start_);
+ auto o = flatbuffers::Offset<OuterLarge>(end);
+ return o;
+ }
+};
+
+inline flatbuffers::Offset<OuterLarge> CreateOuterLarge(
+ flatbuffers::FlatBufferBuilder &_fbb,
+ const BadAlignmentLarge *large = nullptr) {
+ OuterLargeBuilder builder_(_fbb);
+ builder_.add_large(large);
+ return builder_.Finish();
+}
+
+flatbuffers::Offset<OuterLarge> CreateOuterLarge(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+
+struct BadAlignmentRootT : public flatbuffers::NativeTable {
+ typedef BadAlignmentRoot TableType;
+ flatbuffers::unique_ptr<OuterLargeT> large{};
+ std::vector<BadAlignmentSmall> small{};
+ BadAlignmentRootT() = default;
+ BadAlignmentRootT(const BadAlignmentRootT &o);
+ BadAlignmentRootT(BadAlignmentRootT&&) FLATBUFFERS_NOEXCEPT = default;
+ BadAlignmentRootT &operator=(BadAlignmentRootT o) FLATBUFFERS_NOEXCEPT;
+};
+
+struct BadAlignmentRoot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
+ typedef BadAlignmentRootT NativeTableType;
+ typedef BadAlignmentRootBuilder Builder;
+ static const flatbuffers::TypeTable *MiniReflectTypeTable() {
+ return BadAlignmentRootTypeTable();
+ }
+ enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
+ VT_LARGE = 4,
+ VT_SMALL = 6
+ };
+ const OuterLarge *large() const {
+ return GetPointer<const OuterLarge *>(VT_LARGE);
+ }
+ OuterLarge *mutable_large() {
+ return GetPointer<OuterLarge *>(VT_LARGE);
+ }
+ const flatbuffers::Vector<const BadAlignmentSmall *> *small() const {
+ return GetPointer<const flatbuffers::Vector<const BadAlignmentSmall *> *>(VT_SMALL);
+ }
+ flatbuffers::Vector<const BadAlignmentSmall *> *mutable_small() {
+ return GetPointer<flatbuffers::Vector<const BadAlignmentSmall *> *>(VT_SMALL);
+ }
+ bool Verify(flatbuffers::Verifier &verifier) const {
+ return VerifyTableStart(verifier) &&
+ VerifyOffset(verifier, VT_LARGE) &&
+ verifier.VerifyTable(large()) &&
+ VerifyOffset(verifier, VT_SMALL) &&
+ verifier.VerifyVector(small()) &&
+ verifier.EndTable();
+ }
+ BadAlignmentRootT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
+ void UnPackTo(BadAlignmentRootT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
+ static flatbuffers::Offset<BadAlignmentRoot> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+};
+
+struct BadAlignmentRootBuilder {
+ typedef BadAlignmentRoot Table;
+ flatbuffers::FlatBufferBuilder &fbb_;
+ flatbuffers::uoffset_t start_;
+ void add_large(flatbuffers::Offset<OuterLarge> large) {
+ fbb_.AddOffset(BadAlignmentRoot::VT_LARGE, large);
+ }
+ void add_small(flatbuffers::Offset<flatbuffers::Vector<const BadAlignmentSmall *>> small) {
+ fbb_.AddOffset(BadAlignmentRoot::VT_SMALL, small);
+ }
+ explicit BadAlignmentRootBuilder(flatbuffers::FlatBufferBuilder &_fbb)
+ : fbb_(_fbb) {
+ start_ = fbb_.StartTable();
+ }
+ flatbuffers::Offset<BadAlignmentRoot> Finish() {
+ const auto end = fbb_.EndTable(start_);
+ auto o = flatbuffers::Offset<BadAlignmentRoot>(end);
+ return o;
+ }
+};
+
+inline flatbuffers::Offset<BadAlignmentRoot> CreateBadAlignmentRoot(
+ flatbuffers::FlatBufferBuilder &_fbb,
+ flatbuffers::Offset<OuterLarge> large = 0,
+ flatbuffers::Offset<flatbuffers::Vector<const BadAlignmentSmall *>> small = 0) {
+ BadAlignmentRootBuilder builder_(_fbb);
+ builder_.add_small(small);
+ builder_.add_large(large);
+ return builder_.Finish();
+}
+
+inline flatbuffers::Offset<BadAlignmentRoot> CreateBadAlignmentRootDirect(
+ flatbuffers::FlatBufferBuilder &_fbb,
+ flatbuffers::Offset<OuterLarge> large = 0,
+ const std::vector<BadAlignmentSmall> *small = nullptr) {
+ auto small__ = small ? _fbb.CreateVectorOfStructs<BadAlignmentSmall>(*small) : 0;
+ return CreateBadAlignmentRoot(
+ _fbb,
+ large,
+ small__);
+}
+
+flatbuffers::Offset<BadAlignmentRoot> CreateBadAlignmentRoot(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+
+
+inline bool operator==(const OuterLargeT &lhs, const OuterLargeT &rhs) {
+ return
+ ((lhs.large == rhs.large) || (lhs.large && rhs.large && *lhs.large == *rhs.large));
+}
+
+inline bool operator!=(const OuterLargeT &lhs, const OuterLargeT &rhs) {
+ return !(lhs == rhs);
+}
+
+
+inline OuterLargeT::OuterLargeT(const OuterLargeT &o)
+ : large((o.large) ? new BadAlignmentLarge(*o.large) : nullptr) {
+}
+
+inline OuterLargeT &OuterLargeT::operator=(OuterLargeT o) FLATBUFFERS_NOEXCEPT {
+ std::swap(large, o.large);
+ return *this;
+}
+
+inline OuterLargeT *OuterLarge::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
+ auto _o = std::unique_ptr<OuterLargeT>(new OuterLargeT());
+ UnPackTo(_o.get(), _resolver);
+ return _o.release();
+}
+
+inline void OuterLarge::UnPackTo(OuterLargeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
+ (void)_o;
+ (void)_resolver;
+ { auto _e = large(); if (_e) _o->large = flatbuffers::unique_ptr<BadAlignmentLarge>(new BadAlignmentLarge(*_e)); }
+}
+
+inline flatbuffers::Offset<OuterLarge> OuterLarge::Pack(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
+ return CreateOuterLarge(_fbb, _o, _rehasher);
+}
+
+inline flatbuffers::Offset<OuterLarge> CreateOuterLarge(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
+ (void)_rehasher;
+ (void)_o;
+ struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const OuterLargeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
+ auto _large = _o->large ? _o->large.get() : nullptr;
+ return CreateOuterLarge(
+ _fbb,
+ _large);
+}
+
+
+inline bool operator==(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs) {
+ return
+ ((lhs.large == rhs.large) || (lhs.large && rhs.large && *lhs.large == *rhs.large)) &&
+ (lhs.small == rhs.small);
+}
+
+inline bool operator!=(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs) {
+ return !(lhs == rhs);
+}
+
+
+inline BadAlignmentRootT::BadAlignmentRootT(const BadAlignmentRootT &o)
+ : large((o.large) ? new OuterLargeT(*o.large) : nullptr),
+ small(o.small) {
+}
+
+inline BadAlignmentRootT &BadAlignmentRootT::operator=(BadAlignmentRootT o) FLATBUFFERS_NOEXCEPT {
+ std::swap(large, o.large);
+ std::swap(small, o.small);
+ return *this;
+}
+
+inline BadAlignmentRootT *BadAlignmentRoot::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
+ auto _o = std::unique_ptr<BadAlignmentRootT>(new BadAlignmentRootT());
+ UnPackTo(_o.get(), _resolver);
+ return _o.release();
+}
+
+inline void BadAlignmentRoot::UnPackTo(BadAlignmentRootT *_o, const flatbuffers::resolver_function_t *_resolver) const {
+ (void)_o;
+ (void)_resolver;
+ { auto _e = large(); if (_e) { if(_o->large) { _e->UnPackTo(_o->large.get(), _resolver); } else { _o->large = flatbuffers::unique_ptr<OuterLargeT>(_e->UnPack(_resolver)); } } else if (_o->large) { _o->large.reset(); } }
+ { auto _e = small(); if (_e) { _o->small.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->small[_i] = *_e->Get(_i); } } else { _o->small.resize(0); } }
+}
+
+inline flatbuffers::Offset<BadAlignmentRoot> BadAlignmentRoot::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
+ return CreateBadAlignmentRoot(_fbb, _o, _rehasher);
+}
+
+inline flatbuffers::Offset<BadAlignmentRoot> CreateBadAlignmentRoot(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
+ (void)_rehasher;
+ (void)_o;
+ struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BadAlignmentRootT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
+ auto _large = _o->large ? CreateOuterLarge(_fbb, _o->large.get(), _rehasher) : 0;
+ auto _small = _o->small.size() ? _fbb.CreateVectorOfStructs(_o->small) : 0;
+ return CreateBadAlignmentRoot(
+ _fbb,
+ _large,
+ _small);
+}
+
+inline const flatbuffers::TypeTable *BadAlignmentSmallTypeTable() {
+ static const flatbuffers::TypeCode type_codes[] = {
+ { flatbuffers::ET_UINT, 0, -1 },
+ { flatbuffers::ET_UINT, 0, -1 },
+ { flatbuffers::ET_UINT, 0, -1 }
+ };
+ static const int64_t values[] = { 0, 4, 8, 12 };
+ static const char * const names[] = {
+ "var_0",
+ "var_1",
+ "var_2"
+ };
+ static const flatbuffers::TypeTable tt = {
+ flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names
+ };
+ return &tt;
+}
+
+inline const flatbuffers::TypeTable *BadAlignmentLargeTypeTable() {
+ static const flatbuffers::TypeCode type_codes[] = {
+ { flatbuffers::ET_ULONG, 0, -1 }
+ };
+ static const int64_t values[] = { 0, 8 };
+ static const char * const names[] = {
+ "var_0"
+ };
+ static const flatbuffers::TypeTable tt = {
+ flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names
+ };
+ return &tt;
+}
+
+inline const flatbuffers::TypeTable *OuterLargeTypeTable() {
+ static const flatbuffers::TypeCode type_codes[] = {
+ { flatbuffers::ET_SEQUENCE, 0, 0 }
+ };
+ static const flatbuffers::TypeFunction type_refs[] = {
+ BadAlignmentLargeTypeTable
+ };
+ static const char * const names[] = {
+ "large"
+ };
+ static const flatbuffers::TypeTable tt = {
+ flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names
+ };
+ return &tt;
+}
+
+inline const flatbuffers::TypeTable *BadAlignmentRootTypeTable() {
+ static const flatbuffers::TypeCode type_codes[] = {
+ { flatbuffers::ET_SEQUENCE, 0, 0 },
+ { flatbuffers::ET_SEQUENCE, 1, 1 }
+ };
+ static const flatbuffers::TypeFunction type_refs[] = {
+ OuterLargeTypeTable,
+ BadAlignmentSmallTypeTable
+ };
+ static const char * const names[] = {
+ "large",
+ "small"
+ };
+ static const flatbuffers::TypeTable tt = {
+ flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names
+ };
+ return &tt;
+}
+
+inline const BadAlignmentRoot *GetBadAlignmentRoot(const void *buf) {
+ return flatbuffers::GetRoot<BadAlignmentRoot>(buf);
+}
+
+inline const BadAlignmentRoot *GetSizePrefixedBadAlignmentRoot(const void *buf) {
+ return flatbuffers::GetSizePrefixedRoot<BadAlignmentRoot>(buf);
+}
+
+inline BadAlignmentRoot *GetMutableBadAlignmentRoot(void *buf) {
+ return flatbuffers::GetMutableRoot<BadAlignmentRoot>(buf);
+}
+
+inline BadAlignmentRoot *GetMutableSizePrefixedBadAlignmentRoot(void *buf) {
+ return flatbuffers::GetMutableSizePrefixedRoot<BadAlignmentRoot>(buf);
+}
+
+inline bool VerifyBadAlignmentRootBuffer(
+ flatbuffers::Verifier &verifier) {
+ return verifier.VerifyBuffer<BadAlignmentRoot>(nullptr);
+}
+
+inline bool VerifySizePrefixedBadAlignmentRootBuffer(
+ flatbuffers::Verifier &verifier) {
+ return verifier.VerifySizePrefixedBuffer<BadAlignmentRoot>(nullptr);
+}
+
+inline void FinishBadAlignmentRootBuffer(
+ flatbuffers::FlatBufferBuilder &fbb,
+ flatbuffers::Offset<BadAlignmentRoot> root) {
+ fbb.Finish(root);
+}
+
+inline void FinishSizePrefixedBadAlignmentRootBuffer(
+ flatbuffers::FlatBufferBuilder &fbb,
+ flatbuffers::Offset<BadAlignmentRoot> root) {
+ fbb.FinishSizePrefixed(root);
+}
+
+inline flatbuffers::unique_ptr<BadAlignmentRootT> UnPackBadAlignmentRoot(
+ const void *buf,
+ const flatbuffers::resolver_function_t *res = nullptr) {
+ return flatbuffers::unique_ptr<BadAlignmentRootT>(GetBadAlignmentRoot(buf)->UnPack(res));
+}
+
+inline flatbuffers::unique_ptr<BadAlignmentRootT> UnPackSizePrefixedBadAlignmentRoot(
+ const void *buf,
+ const flatbuffers::resolver_function_t *res = nullptr) {
+ return flatbuffers::unique_ptr<BadAlignmentRootT>(GetSizePrefixedBadAlignmentRoot(buf)->UnPack(res));
+}
+
+#endif // FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_
diff --git a/tests/arrays_test/my_game/example/array_struct_generated.rs b/tests/arrays_test/my_game/example/array_struct_generated.rs
index bf41696..31e1f9c 100644
--- a/tests/arrays_test/my_game/example/array_struct_generated.rs
+++ b/tests/arrays_test/my_game/example/array_struct_generated.rs
@@ -32,39 +32,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for ArrayStruct {}
-impl flatbuffers::SafeSliceAccess for ArrayStruct {}
impl<'a> flatbuffers::Follow<'a> for ArrayStruct {
type Inner = &'a ArrayStruct;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a ArrayStruct>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a ArrayStruct {
type Inner = &'a ArrayStruct;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<ArrayStruct>(buf, loc)
}
}
impl<'b> flatbuffers::Push for ArrayStruct {
type Output = ArrayStruct;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const ArrayStruct as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b ArrayStruct {
- type Output = ArrayStruct;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const ArrayStruct as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const ArrayStruct as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -104,64 +90,88 @@
}
pub fn a(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn b(&'a self) -> flatbuffers::Array<'a, i32, 15> {
- flatbuffers::Array::follow(&self.0, 4)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::Array::follow(&self.0, 4) }
}
pub fn set_b(&mut self, items: &[i32; 15]) {
- flatbuffers::emplace_scalar_array(&mut self.0, 4, items);
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::emplace_scalar_array(&mut self.0, 4, items) };
}
pub fn c(&self) -> i8 {
- let mut mem = core::mem::MaybeUninit::<i8>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i8 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[64..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i8>(),
+ core::mem::size_of::<<i8 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_c(&mut self, x: i8) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i8 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[64..].as_mut_ptr(),
- core::mem::size_of::<i8>(),
+ core::mem::size_of::<<i8 as EndianScalar>::Scalar>(),
);
}
}
pub fn d(&'a self) -> flatbuffers::Array<'a, NestedStruct, 2> {
- flatbuffers::Array::follow(&self.0, 72)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::Array::follow(&self.0, 72) }
}
pub fn set_d(&mut self, x: &[NestedStruct; 2]) {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
unsafe {
core::ptr::copy(
x.as_ptr() as *const u8,
@@ -172,34 +182,46 @@
}
pub fn e(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[136..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_e(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[136..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
pub fn f(&'a self) -> flatbuffers::Array<'a, i64, 2> {
- flatbuffers::Array::follow(&self.0, 144)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::Array::follow(&self.0, 144) }
}
pub fn set_f(&mut self, items: &[i64; 2]) {
- flatbuffers::emplace_scalar_array(&mut self.0, 144, items);
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::emplace_scalar_array(&mut self.0, 144, items) };
}
pub fn unpack(&self) -> ArrayStructT {
diff --git a/tests/arrays_test/my_game/example/array_table_generated.rs b/tests/arrays_test/my_game/example/array_table_generated.rs
index bc78fc1..a9b51cd 100644
--- a/tests/arrays_test/my_game/example/array_table_generated.rs
+++ b/tests/arrays_test/my_game/example/array_table_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for ArrayTable<'a> {
type Inner = ArrayTable<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
ArrayTable { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn a(&self) -> Option<&'a ArrayStruct> {
- self._tab.get::<ArrayStruct>(ArrayTable::VT_A, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<ArrayStruct>(ArrayTable::VT_A, None)}
}
}
@@ -140,18 +143,6 @@
}
}
#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_root_as_array_table<'a>(buf: &'a [u8]) -> ArrayTable<'a> {
- unsafe { flatbuffers::root_unchecked::<ArrayTable<'a>>(buf) }
-}
-
-#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_size_prefixed_root_as_array_table<'a>(buf: &'a [u8]) -> ArrayTable<'a> {
- unsafe { flatbuffers::size_prefixed_root_unchecked::<ArrayTable<'a>>(buf) }
-}
-
-#[inline]
/// Verifies that a buffer of bytes contains a `ArrayTable`
/// and returns it.
/// Note that verification is still experimental and may not
diff --git a/tests/arrays_test/my_game/example/nested_struct_generated.rs b/tests/arrays_test/my_game/example/nested_struct_generated.rs
index 337affc..0f1f544 100644
--- a/tests/arrays_test/my_game/example/nested_struct_generated.rs
+++ b/tests/arrays_test/my_game/example/nested_struct_generated.rs
@@ -30,39 +30,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for NestedStruct {}
-impl flatbuffers::SafeSliceAccess for NestedStruct {}
impl<'a> flatbuffers::Follow<'a> for NestedStruct {
type Inner = &'a NestedStruct;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a NestedStruct>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a NestedStruct {
type Inner = &'a NestedStruct;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<NestedStruct>(buf, loc)
}
}
impl<'b> flatbuffers::Push for NestedStruct {
type Output = NestedStruct;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const NestedStruct as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b NestedStruct {
- type Output = NestedStruct;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const NestedStruct as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const NestedStruct as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -98,41 +84,59 @@
}
pub fn a(&'a self) -> flatbuffers::Array<'a, i32, 2> {
- flatbuffers::Array::follow(&self.0, 0)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::Array::follow(&self.0, 0) }
}
pub fn set_a(&mut self, items: &[i32; 2]) {
- flatbuffers::emplace_scalar_array(&mut self.0, 0, items);
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::emplace_scalar_array(&mut self.0, 0, items) };
}
pub fn b(&self) -> TestEnum {
- let mut mem = core::mem::MaybeUninit::<TestEnum>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<TestEnum as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[8..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<TestEnum>(),
+ core::mem::size_of::<<TestEnum as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_b(&mut self, x: TestEnum) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const TestEnum as *const u8,
+ &x_le as *const _ as *const u8,
self.0[8..].as_mut_ptr(),
- core::mem::size_of::<TestEnum>(),
+ core::mem::size_of::<<TestEnum as EndianScalar>::Scalar>(),
);
}
}
pub fn c(&'a self) -> flatbuffers::Array<'a, TestEnum, 2> {
- flatbuffers::Array::follow(&self.0, 9)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::Array::follow(&self.0, 9) }
}
pub fn set_c(&mut self, x: &[TestEnum; 2]) {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
unsafe {
core::ptr::copy(
x.as_ptr() as *const u8,
@@ -143,11 +147,17 @@
}
pub fn d(&'a self) -> flatbuffers::Array<'a, i64, 2> {
- flatbuffers::Array::follow(&self.0, 16)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::Array::follow(&self.0, 16) }
}
pub fn set_d(&mut self, items: &[i64; 2]) {
- flatbuffers::emplace_scalar_array(&mut self.0, 16, items);
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid array in this slot
+ unsafe { flatbuffers::emplace_scalar_array(&mut self.0, 16, items) };
}
pub fn unpack(&self) -> NestedStructT {
diff --git a/tests/arrays_test/my_game/example/test_enum_generated.rs b/tests/arrays_test/my_game/example/test_enum_generated.rs
index 5252133..6721484 100644
--- a/tests/arrays_test/my_game/example/test_enum_generated.rs
+++ b/tests/arrays_test/my_game/example/test_enum_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for TestEnum {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for TestEnum {
type Output = TestEnum;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for TestEnum {
+ type Scalar = i8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i8::from_le(self.0);
+ fn from_little_endian(v: i8) -> Self {
+ let b = i8::from_le(v);
Self(b)
}
}
diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h
index 090f464..5ba5a98 100644
--- a/tests/arrays_test_generated.h
+++ b/tests/arrays_test_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h
index be27b45..2fdeeac 100644
--- a/tests/cpp17/generated_cpp17/monster_test_generated.h
+++ b/tests/cpp17/generated_cpp17/monster_test_generated.h
@@ -10,9 +10,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
@@ -1321,6 +1321,14 @@
MyGame::Example::Test native_inline{};
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0);
MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne;
+ float nan_default = std::numeric_limits<float>::quiet_NaN();
+ float inf_default = std::numeric_limits<float>::infinity();
+ float positive_inf_default = std::numeric_limits<float>::infinity();
+ float infinity_default = std::numeric_limits<float>::infinity();
+ float positive_infinity_default = std::numeric_limits<float>::infinity();
+ float negative_inf_default = -std::numeric_limits<float>::infinity();
+ float negative_infinity_default = -std::numeric_limits<float>::infinity();
+ double double_inf_default = std::numeric_limits<double>::infinity();
MonsterT() = default;
MonsterT(const MonsterT &o);
MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default;
@@ -1388,7 +1396,15 @@
VT_SCALAR_KEY_SORTED_TABLES = 104,
VT_NATIVE_INLINE = 106,
VT_LONG_ENUM_NON_ENUM_DEFAULT = 108,
- VT_LONG_ENUM_NORMAL_DEFAULT = 110
+ VT_LONG_ENUM_NORMAL_DEFAULT = 110,
+ VT_NAN_DEFAULT = 112,
+ VT_INF_DEFAULT = 114,
+ VT_POSITIVE_INF_DEFAULT = 116,
+ VT_INFINITY_DEFAULT = 118,
+ VT_POSITIVE_INFINITY_DEFAULT = 120,
+ VT_NEGATIVE_INF_DEFAULT = 122,
+ VT_NEGATIVE_INFINITY_DEFAULT = 124,
+ VT_DOUBLE_INF_DEFAULT = 126
};
const MyGame::Example::Vec3 *pos() const {
return GetStruct<const MyGame::Example::Vec3 *>(VT_POS);
@@ -1745,6 +1761,54 @@
bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast<MyGame::Example::LongEnum>(2ULL)) {
return SetField<uint64_t>(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(_long_enum_normal_default), 2ULL);
}
+ float nan_default() const {
+ return GetField<float>(VT_NAN_DEFAULT, std::numeric_limits<float>::quiet_NaN());
+ }
+ bool mutate_nan_default(float _nan_default = std::numeric_limits<float>::quiet_NaN()) {
+ return SetField<float>(VT_NAN_DEFAULT, _nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ float inf_default() const {
+ return GetField<float>(VT_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_inf_default(float _inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INF_DEFAULT, _inf_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_inf_default() const {
+ return GetField<float>(VT_POSITIVE_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ float infinity_default() const {
+ return GetField<float>(VT_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_infinity_default(float _infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_infinity_default() const {
+ return GetField<float>(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float negative_inf_default() const {
+ return GetField<float>(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ float negative_infinity_default() const {
+ return GetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ double double_inf_default() const {
+ return GetField<double>(VT_DOUBLE_INF_DEFAULT, std::numeric_limits<double>::infinity());
+ }
+ bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits<double>::infinity()) {
+ return SetField<double>(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits<double>::infinity());
+ }
template<size_t Index>
auto get_field() const {
if constexpr (Index == 0) return pos();
@@ -1800,6 +1864,14 @@
else if constexpr (Index == 50) return native_inline();
else if constexpr (Index == 51) return long_enum_non_enum_default();
else if constexpr (Index == 52) return long_enum_normal_default();
+ else if constexpr (Index == 53) return nan_default();
+ else if constexpr (Index == 54) return inf_default();
+ else if constexpr (Index == 55) return positive_inf_default();
+ else if constexpr (Index == 56) return infinity_default();
+ else if constexpr (Index == 57) return positive_infinity_default();
+ else if constexpr (Index == 58) return negative_inf_default();
+ else if constexpr (Index == 59) return negative_infinity_default();
+ else if constexpr (Index == 60) return double_inf_default();
else static_assert(Index != Index, "Invalid Field Index");
}
bool Verify(flatbuffers::Verifier &verifier) const {
@@ -1893,6 +1965,14 @@
VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
+ VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
verifier.EndTable();
}
MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
@@ -2087,6 +2167,30 @@
void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) {
fbb_.AddElement<uint64_t>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(long_enum_normal_default), 2ULL);
}
+ void add_nan_default(float nan_default) {
+ fbb_.AddElement<float>(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ void add_inf_default(float inf_default) {
+ fbb_.AddElement<float>(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_inf_default(float positive_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_infinity_default(float infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_infinity_default(float positive_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_negative_inf_default(float negative_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_negative_infinity_default(float negative_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_double_inf_default(double double_inf_default) {
+ fbb_.AddElement<double>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits<double>::infinity());
+ }
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
@@ -2153,8 +2257,17 @@
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<MyGame::Example::Stat>>> scalar_key_sorted_tables = 0,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
MonsterBuilder builder_(_fbb);
+ builder_.add_double_inf_default(double_inf_default);
builder_.add_long_enum_normal_default(long_enum_normal_default);
builder_.add_long_enum_non_enum_default(long_enum_non_enum_default);
builder_.add_non_owning_reference(non_owning_reference);
@@ -2164,6 +2277,13 @@
builder_.add_testhashs64_fnv1a(testhashs64_fnv1a);
builder_.add_testhashu64_fnv1(testhashu64_fnv1);
builder_.add_testhashs64_fnv1(testhashs64_fnv1);
+ builder_.add_negative_infinity_default(negative_infinity_default);
+ builder_.add_negative_inf_default(negative_inf_default);
+ builder_.add_positive_infinity_default(positive_infinity_default);
+ builder_.add_infinity_default(infinity_default);
+ builder_.add_positive_inf_default(positive_inf_default);
+ builder_.add_inf_default(inf_default);
+ builder_.add_nan_default(nan_default);
builder_.add_native_inline(native_inline);
builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables);
builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer);
@@ -2216,7 +2336,7 @@
static auto constexpr Create = CreateMonster;
static constexpr auto name = "Monster";
static constexpr auto fully_qualified_name = "MyGame.Example.Monster";
- static constexpr size_t fields_number = 53;
+ static constexpr size_t fields_number = 61;
static constexpr std::array<const char *, fields_number> field_names = {
"pos",
"mana",
@@ -2270,7 +2390,15 @@
"scalar_key_sorted_tables",
"native_inline",
"long_enum_non_enum_default",
- "long_enum_normal_default"
+ "long_enum_normal_default",
+ "nan_default",
+ "inf_default",
+ "positive_inf_default",
+ "infinity_default",
+ "positive_infinity_default",
+ "negative_inf_default",
+ "negative_infinity_default",
+ "double_inf_default"
};
template<size_t Index>
using FieldType = decltype(std::declval<type>().get_field<Index>());
@@ -2330,7 +2458,15 @@
std::vector<flatbuffers::Offset<MyGame::Example::Stat>> *scalar_key_sorted_tables = nullptr,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
auto name__ = name ? _fbb.CreateString(name) : 0;
auto inventory__ = inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0;
auto test4__ = test4 ? _fbb.CreateVectorOfStructs<MyGame::Example::Test>(*test4) : 0;
@@ -2406,7 +2542,15 @@
scalar_key_sorted_tables__,
native_inline,
long_enum_non_enum_default,
- long_enum_normal_default);
+ long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default);
}
flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
@@ -2881,7 +3025,15 @@
testrequirednestedflatbuffer(o.testrequirednestedflatbuffer),
native_inline(o.native_inline),
long_enum_non_enum_default(o.long_enum_non_enum_default),
- long_enum_normal_default(o.long_enum_normal_default) {
+ long_enum_normal_default(o.long_enum_normal_default),
+ nan_default(o.nan_default),
+ inf_default(o.inf_default),
+ positive_inf_default(o.positive_inf_default),
+ infinity_default(o.infinity_default),
+ positive_infinity_default(o.positive_infinity_default),
+ negative_inf_default(o.negative_inf_default),
+ negative_infinity_default(o.negative_infinity_default),
+ double_inf_default(o.double_inf_default) {
testarrayoftables.reserve(o.testarrayoftables.size());
for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); }
vector_of_referrables.reserve(o.vector_of_referrables.size());
@@ -2945,6 +3097,14 @@
std::swap(native_inline, o.native_inline);
std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default);
std::swap(long_enum_normal_default, o.long_enum_normal_default);
+ std::swap(nan_default, o.nan_default);
+ std::swap(inf_default, o.inf_default);
+ std::swap(positive_inf_default, o.positive_inf_default);
+ std::swap(infinity_default, o.infinity_default);
+ std::swap(positive_infinity_default, o.positive_infinity_default);
+ std::swap(negative_inf_default, o.negative_inf_default);
+ std::swap(negative_infinity_default, o.negative_infinity_default);
+ std::swap(double_inf_default, o.double_inf_default);
return *this;
}
@@ -3010,6 +3170,14 @@
{ auto _e = native_inline(); if (_e) _o->native_inline = *_e; }
{ auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; }
{ auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; }
+ { auto _e = nan_default(); _o->nan_default = _e; }
+ { auto _e = inf_default(); _o->inf_default = _e; }
+ { auto _e = positive_inf_default(); _o->positive_inf_default = _e; }
+ { auto _e = infinity_default(); _o->infinity_default = _e; }
+ { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; }
+ { auto _e = negative_inf_default(); _o->negative_inf_default = _e; }
+ { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; }
+ { auto _e = double_inf_default(); _o->double_inf_default = _e; }
}
inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
@@ -3073,6 +3241,14 @@
auto _native_inline = &_o->native_inline;
auto _long_enum_non_enum_default = _o->long_enum_non_enum_default;
auto _long_enum_normal_default = _o->long_enum_normal_default;
+ auto _nan_default = _o->nan_default;
+ auto _inf_default = _o->inf_default;
+ auto _positive_inf_default = _o->positive_inf_default;
+ auto _infinity_default = _o->infinity_default;
+ auto _positive_infinity_default = _o->positive_infinity_default;
+ auto _negative_inf_default = _o->negative_inf_default;
+ auto _negative_infinity_default = _o->negative_infinity_default;
+ auto _double_inf_default = _o->double_inf_default;
return MyGame::Example::CreateMonster(
_fbb,
_pos,
@@ -3127,7 +3303,15 @@
_scalar_key_sorted_tables,
_native_inline,
_long_enum_non_enum_default,
- _long_enum_normal_default);
+ _long_enum_normal_default,
+ _nan_default,
+ _inf_default,
+ _positive_inf_default,
+ _infinity_default,
+ _positive_infinity_default,
+ _negative_inf_default,
+ _negative_infinity_default,
+ _double_inf_default);
}
inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
@@ -3885,7 +4069,15 @@
{ flatbuffers::ET_SEQUENCE, 1, 5 },
{ flatbuffers::ET_SEQUENCE, 0, 3 },
{ flatbuffers::ET_ULONG, 0, 12 },
- { flatbuffers::ET_ULONG, 0, 12 }
+ { flatbuffers::ET_ULONG, 0, 12 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_DOUBLE, 0, -1 }
};
static const flatbuffers::TypeFunction type_refs[] = {
MyGame::Example::Vec3TypeTable,
@@ -3956,10 +4148,18 @@
"scalar_key_sorted_tables",
"native_inline",
"long_enum_non_enum_default",
- "long_enum_normal_default"
+ "long_enum_normal_default",
+ "nan_default",
+ "inf_default",
+ "positive_inf_default",
+ "infinity_default",
+ "positive_infinity_default",
+ "negative_inf_default",
+ "negative_infinity_default",
+ "double_inf_default"
};
static const flatbuffers::TypeTable tt = {
- flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names
+ flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names
};
return &tt;
}
diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h
index b4b0625..09711d3 100644
--- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h
+++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace optional_scalars {
diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h
index 5d45644..07d8669 100644
--- a/tests/cpp17/generated_cpp17/union_vector_generated.h
+++ b/tests/cpp17/generated_cpp17/union_vector_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
struct Attacker;
diff --git a/tests/cpp17/test_cpp17.cpp b/tests/cpp17/test_cpp17.cpp
index cfba2b6..6c19291 100644
--- a/tests/cpp17/test_cpp17.cpp
+++ b/tests/cpp17/test_cpp17.cpp
@@ -148,6 +148,14 @@
signed_enum = -1
long_enum_non_enum_default = 0
long_enum_normal_default = 2
+ nan_default = nan
+ inf_default = inf
+ positive_inf_default = inf
+ infinity_default = inf
+ positive_infinity_default = inf
+ negative_inf_default = -inf
+ negative_infinity_default = -inf
+ double_inf_default = inf
})";
// Call a generic function that has no specific knowledge of the flatbuffer we
diff --git a/tests/evolution_test.cpp b/tests/evolution_test.cpp
index da0fd74..e7404d4 100644
--- a/tests/evolution_test.cpp
+++ b/tests/evolution_test.cpp
@@ -98,6 +98,8 @@
test_conform(parser, "table T { B:float; }",
"field renamed to different type");
test_conform(parser, "enum E:byte { B, A }", "values differ for enum");
+ test_conform(parser, "table T { }", "field deleted");
+ test_conform(parser, "table T { B:int; }", ""); //renaming a field is allowed
}
void UnionDeprecationTest(const std::string& tests_data_path) {
diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h
index 31370d8..560fc40 100644
--- a/tests/evolution_test/evolution_v1_generated.h
+++ b/tests/evolution_test/evolution_v1_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace Evolution {
diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h
index 20d019c..881596f 100644
--- a/tests/evolution_test/evolution_v2_generated.h
+++ b/tests/evolution_test/evolution_v2_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace Evolution {
diff --git a/tests/flatc/enum_val_attributes.fbs b/tests/flatc/enum_val_attributes.fbs
new file mode 100644
index 0000000..33b67d7
--- /dev/null
+++ b/tests/flatc/enum_val_attributes.fbs
@@ -0,0 +1,8 @@
+attribute display_name;
+
+enum ValAttributes : int
+{
+ Val1 = 0 (display_name: "Value 1"),
+ Val2 (display_name: "Value 2"),
+ Val3 (deprecated, display_name: "Value 3 (deprecated)"),
+}
\ No newline at end of file
diff --git a/tests/flatc/flatc_schema_tests.py b/tests/flatc/flatc_schema_tests.py
new file mode 100644
index 0000000..e79bb3c
--- /dev/null
+++ b/tests/flatc/flatc_schema_tests.py
@@ -0,0 +1,43 @@
+# Copyright 2022 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from flatc_test import *
+import json
+
+
+class SchemaTests:
+ def EnumValAttributes(self):
+ # Generate .bfbs schema first
+ flatc(["--schema", "--binary", "--bfbs-builtins", "enum_val_attributes.fbs"])
+ assert_file_exists("enum_val_attributes.bfbs")
+
+ # Then turn it into JSON
+ flatc(["--json", "--strict-json", str(reflection_fbs_path()), "--", "enum_val_attributes.bfbs"])
+
+ # The attributes should be present in JSON
+ schema_json = json.loads(get_file_contents("enum_val_attributes.json"))
+
+ assert schema_json["enums"][0]["name"] == "ValAttributes"
+ assert schema_json["enums"][0]["values"][0]["name"] == "Val1"
+ assert schema_json["enums"][0]["values"][0]["attributes"][0]["key"] == "display_name"
+ assert schema_json["enums"][0]["values"][0]["attributes"][0]["value"] == "Value 1"
+
+ assert schema_json["enums"][0]["values"][1]["name"] == "Val2"
+ assert schema_json["enums"][0]["values"][1]["attributes"][0]["key"] == "display_name"
+ assert schema_json["enums"][0]["values"][1]["attributes"][0]["value"] == "Value 2"
+
+ assert schema_json["enums"][0]["values"][2]["name"] == "Val3"
+ assert schema_json["enums"][0]["values"][2]["attributes"][0]["key"] == "deprecated"
+ assert schema_json["enums"][0]["values"][2]["attributes"][1]["key"] == "display_name"
+ assert schema_json["enums"][0]["values"][2]["attributes"][1]["value"] == "Value 3 (deprecated)"
diff --git a/tests/flatc/flatc_test.py b/tests/flatc/flatc_test.py
index fcc32c6..2e51743 100755
--- a/tests/flatc/flatc_test.py
+++ b/tests/flatc/flatc_test.py
@@ -51,6 +51,10 @@
subprocess.check_call(cmd, cwd=str(cwd))
+def reflection_fbs_path():
+ return Path(root_path).joinpath("reflection", "reflection.fbs")
+
+
def make_absolute(filename, path=script_path):
return str(Path(path, filename).absolute())
@@ -67,6 +71,14 @@
return file
+def get_file_contents(filename, path=script_path):
+ file = Path(path, filename)
+ contents = ""
+ with open(file) as file:
+ contents = file.read()
+ return contents
+
+
def assert_file_contains(file, needles):
with open(file) as file:
contents = file.read()
diff --git a/tests/flatc/main.py b/tests/flatc/main.py
index 1b6bee9..3bc2318 100755
--- a/tests/flatc/main.py
+++ b/tests/flatc/main.py
@@ -19,8 +19,9 @@
from flatc_test import run_all
from flatc_cpp_tests import CppTests
from flatc_ts_tests import TsTests
+from flatc_schema_tests import SchemaTests
-passing, failing = run_all(CppTests, TsTests)
+passing, failing = run_all(CppTests, TsTests, SchemaTests)
print("")
print("{0} of {1} tests passed".format(passing, passing + failing))
diff --git a/tests/flexbuffers_test.cpp b/tests/flexbuffers_test.cpp
index 1b34f85..b8da8ed 100644
--- a/tests/flexbuffers_test.cpp
+++ b/tests/flexbuffers_test.cpp
@@ -1,3 +1,5 @@
+#include <limits>
+
#include "flexbuffers_test.h"
#include "flatbuffers/flexbuffers.h"
@@ -289,4 +291,4 @@
}
} // namespace tests
-} // namespace flatbuffers
\ No newline at end of file
+} // namespace flatbuffers
diff --git a/tests/fuzz_test.cpp b/tests/fuzz_test.cpp
index 66883fa..0607424 100644
--- a/tests/fuzz_test.cpp
+++ b/tests/fuzz_test.cpp
@@ -1,3 +1,5 @@
+#include <algorithm>
+
#include "fuzz_test.h"
#include "flatbuffers/flatbuffers.h"
@@ -302,4 +304,4 @@
}
} // namespace tests
-} // namespace flatbuffers
\ No newline at end of file
+} // namespace flatbuffers
diff --git a/tests/go_test.go b/tests/go_test.go
index 8cb7b97..a04ef2c 100644
--- a/tests/go_test.go
+++ b/tests/go_test.go
@@ -533,6 +533,14 @@
fail(FailString("mana", 150, got))
}
+ if monster.Test != nil && monster.Test.Type == example.AnyMonster {
+ monster.Test.Value.(*example.MonsterT).NanDefault = 0.0
+ }
+ if monster.Enemy != nil {
+ monster.Enemy.NanDefault = 0.0
+ }
+ monster.NanDefault = 0.0
+
builder := flatbuffers.NewBuilder(0)
builder.Finish(monster.Pack(builder))
monster2 := example.GetRootAsMonster(builder.FinishedBytes(), 0).UnPack()
diff --git a/tests/include_test1/my_game/other_name_space/from_include_generated.rs b/tests/include_test1/my_game/other_name_space/from_include_generated.rs
index 3c5165d..70cb407 100644
--- a/tests/include_test1/my_game/other_name_space/from_include_generated.rs
+++ b/tests/include_test1/my_game/other_name_space/from_include_generated.rs
@@ -51,10 +51,8 @@
impl<'a> flatbuffers::Follow<'a> for FromInclude {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i64>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i64>(buf, loc);
Self(b)
}
}
@@ -62,21 +60,21 @@
impl flatbuffers::Push for FromInclude {
type Output = FromInclude;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i64>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i64>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for FromInclude {
+ type Scalar = i64;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i64::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i64 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i64::from_le(self.0);
+ fn from_little_endian(v: i64) -> Self {
+ let b = i64::from_le(v);
Self(b)
}
}
diff --git a/tests/include_test1/my_game/other_name_space/table_b_generated.rs b/tests/include_test1/my_game/other_name_space/table_b_generated.rs
index da7b937..5652195 100644
--- a/tests/include_test1/my_game/other_name_space/table_b_generated.rs
+++ b/tests/include_test1/my_game/other_name_space/table_b_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableB<'a> {
type Inner = TableB<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableB { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn a(&self) -> Option<super::super::TableA<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)}
}
}
diff --git a/tests/include_test1/my_game/other_name_space/unused_generated.rs b/tests/include_test1/my_game/other_name_space/unused_generated.rs
index 1e4ad9c..69be486 100644
--- a/tests/include_test1/my_game/other_name_space/unused_generated.rs
+++ b/tests/include_test1/my_game/other_name_space/unused_generated.rs
@@ -27,39 +27,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Unused {}
-impl flatbuffers::SafeSliceAccess for Unused {}
impl<'a> flatbuffers::Follow<'a> for Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Unused>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Unused>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Unused {
type Output = Unused;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Unused {
- type Output = Unused;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Unused as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -89,24 +75,30 @@
}
pub fn a(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/include_test1/table_a_generated.rs b/tests/include_test1/table_a_generated.rs
index 0e6a78d..fd979b0 100644
--- a/tests/include_test1/table_a_generated.rs
+++ b/tests/include_test1/table_a_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableA<'a> {
type Inner = TableA<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableA { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn b(&self) -> Option<my_game::other_name_space::TableB<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)}
}
}
diff --git a/tests/include_test2/my_game/other_name_space/from_include_generated.rs b/tests/include_test2/my_game/other_name_space/from_include_generated.rs
index 3c5165d..70cb407 100644
--- a/tests/include_test2/my_game/other_name_space/from_include_generated.rs
+++ b/tests/include_test2/my_game/other_name_space/from_include_generated.rs
@@ -51,10 +51,8 @@
impl<'a> flatbuffers::Follow<'a> for FromInclude {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i64>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i64>(buf, loc);
Self(b)
}
}
@@ -62,21 +60,21 @@
impl flatbuffers::Push for FromInclude {
type Output = FromInclude;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i64>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i64>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for FromInclude {
+ type Scalar = i64;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i64::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i64 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i64::from_le(self.0);
+ fn from_little_endian(v: i64) -> Self {
+ let b = i64::from_le(v);
Self(b)
}
}
diff --git a/tests/include_test2/my_game/other_name_space/table_b_generated.rs b/tests/include_test2/my_game/other_name_space/table_b_generated.rs
index da7b937..5652195 100644
--- a/tests/include_test2/my_game/other_name_space/table_b_generated.rs
+++ b/tests/include_test2/my_game/other_name_space/table_b_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableB<'a> {
type Inner = TableB<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableB { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn a(&self) -> Option<super::super::TableA<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)}
}
}
diff --git a/tests/include_test2/my_game/other_name_space/unused_generated.rs b/tests/include_test2/my_game/other_name_space/unused_generated.rs
index 1e4ad9c..69be486 100644
--- a/tests/include_test2/my_game/other_name_space/unused_generated.rs
+++ b/tests/include_test2/my_game/other_name_space/unused_generated.rs
@@ -27,39 +27,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Unused {}
-impl flatbuffers::SafeSliceAccess for Unused {}
impl<'a> flatbuffers::Follow<'a> for Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Unused>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Unused>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Unused {
type Output = Unused;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Unused {
- type Output = Unused;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Unused as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -89,24 +75,30 @@
}
pub fn a(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/include_test2/table_a_generated.rs b/tests/include_test2/table_a_generated.rs
index 0e6a78d..fd979b0 100644
--- a/tests/include_test2/table_a_generated.rs
+++ b/tests/include_test2/table_a_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableA<'a> {
type Inner = TableA<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableA { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn b(&self) -> Option<my_game::other_name_space::TableB<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)}
}
}
diff --git a/tests/keyword_test/keyword_test/abc_generated.rs b/tests/keyword_test/keyword_test/abc_generated.rs
index 823b883..5169ab1 100644
--- a/tests/keyword_test/keyword_test/abc_generated.rs
+++ b/tests/keyword_test/keyword_test/abc_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for ABC {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i32>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i32>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for ABC {
type Output = ABC;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i32>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i32>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for ABC {
+ type Scalar = i32;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i32::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i32 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i32::from_le(self.0);
+ fn from_little_endian(v: i32) -> Self {
+ let b = i32::from_le(v);
Self(b)
}
}
diff --git a/tests/keyword_test/keyword_test/keywords_in_table_generated.rs b/tests/keyword_test/keyword_test/keywords_in_table_generated.rs
index 74ddfba..4dd30dc 100644
--- a/tests/keyword_test/keyword_test/keywords_in_table_generated.rs
+++ b/tests/keyword_test/keyword_test/keywords_in_table_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for KeywordsInTable<'a> {
type Inner = KeywordsInTable<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -35,7 +35,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
KeywordsInTable { _tab: table }
}
#[allow(unused_mut)]
@@ -66,19 +66,31 @@
#[inline]
pub fn is(&self) -> ABC {
- self._tab.get::<ABC>(KeywordsInTable::VT_IS, Some(ABC::void)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<ABC>(KeywordsInTable::VT_IS, Some(ABC::void)).unwrap()}
}
#[inline]
pub fn private(&self) -> public {
- self._tab.get::<public>(KeywordsInTable::VT_PRIVATE, Some(public::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<public>(KeywordsInTable::VT_PRIVATE, Some(public::NONE)).unwrap()}
}
#[inline]
pub fn type_(&self) -> i32 {
- self._tab.get::<i32>(KeywordsInTable::VT_TYPE_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(KeywordsInTable::VT_TYPE_, Some(0)).unwrap()}
}
#[inline]
pub fn default(&self) -> bool {
- self._tab.get::<bool>(KeywordsInTable::VT_DEFAULT, Some(false)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<bool>(KeywordsInTable::VT_DEFAULT, Some(false)).unwrap()}
}
}
diff --git a/tests/keyword_test/keyword_test/keywords_in_union_generated.rs b/tests/keyword_test/keyword_test/keywords_in_union_generated.rs
index 78d8cd7..ba9fcd3 100644
--- a/tests/keyword_test/keyword_test/keywords_in_union_generated.rs
+++ b/tests/keyword_test/keyword_test/keywords_in_union_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for KeywordsInUnion {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for KeywordsInUnion {
type Output = KeywordsInUnion;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for KeywordsInUnion {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/keyword_test/keyword_test/public_generated.rs b/tests/keyword_test/keyword_test/public_generated.rs
index 76c6ed0..12c3ff5 100644
--- a/tests/keyword_test/keyword_test/public_generated.rs
+++ b/tests/keyword_test/keyword_test/public_generated.rs
@@ -51,10 +51,8 @@
impl<'a> flatbuffers::Follow<'a> for public {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i32>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i32>(buf, loc);
Self(b)
}
}
@@ -62,21 +60,21 @@
impl flatbuffers::Push for public {
type Output = public;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i32>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i32>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for public {
+ type Scalar = i32;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i32::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i32 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i32::from_le(self.0);
+ fn from_little_endian(v: i32) -> Self {
+ let b = i32::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h
index b224677..895249e 100644
--- a/tests/monster_extra_generated.h
+++ b/tests/monster_extra_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
diff --git a/tests/monster_test.afb b/tests/monster_test.afb
index b98933a..b77de7b 100644
--- a/tests/monster_test.afb
+++ b/tests/monster_test.afb
@@ -58,21 +58,21 @@
vector (reflection.Schema.objects):
+0x0078 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items)
- +0x007C | 9C 31 00 00 | UOffset32 | 0x0000319C (12700) Loc: +0x3218 | offset to table[0]
+ +0x007C | 54 35 00 00 | UOffset32 | 0x00003554 (13652) Loc: +0x35D0 | offset to table[0]
+0x0080 | 50 0E 00 00 | UOffset32 | 0x00000E50 (3664) Loc: +0x0ED0 | offset to table[1]
- +0x0084 | E8 2D 00 00 | UOffset32 | 0x00002DE8 (11752) Loc: +0x2E6C | offset to table[2]
- +0x0088 | C4 2E 00 00 | UOffset32 | 0x00002EC4 (11972) Loc: +0x2F4C | offset to table[3]
- +0x008C | 64 30 00 00 | UOffset32 | 0x00003064 (12388) Loc: +0x30F0 | offset to table[4]
- +0x0090 | D8 2F 00 00 | UOffset32 | 0x00002FD8 (12248) Loc: +0x3068 | offset to table[5]
- +0x0094 | A0 35 00 00 | UOffset32 | 0x000035A0 (13728) Loc: +0x3634 | offset to table[6]
- +0x0098 | 80 34 00 00 | UOffset32 | 0x00003480 (13440) Loc: +0x3518 | offset to table[7]
+ +0x0084 | A0 31 00 00 | UOffset32 | 0x000031A0 (12704) Loc: +0x3224 | offset to table[2]
+ +0x0088 | 7C 32 00 00 | UOffset32 | 0x0000327C (12924) Loc: +0x3304 | offset to table[3]
+ +0x008C | 1C 34 00 00 | UOffset32 | 0x0000341C (13340) Loc: +0x34A8 | offset to table[4]
+ +0x0090 | 90 33 00 00 | UOffset32 | 0x00003390 (13200) Loc: +0x3420 | offset to table[5]
+ +0x0094 | 58 39 00 00 | UOffset32 | 0x00003958 (14680) Loc: +0x39EC | offset to table[6]
+ +0x0098 | 38 38 00 00 | UOffset32 | 0x00003838 (14392) Loc: +0x38D0 | offset to table[7]
+0x009C | 70 0B 00 00 | UOffset32 | 0x00000B70 (2928) Loc: +0x0C0C | offset to table[8]
- +0x00A0 | 78 32 00 00 | UOffset32 | 0x00003278 (12920) Loc: +0x3318 | offset to table[9]
- +0x00A4 | 68 36 00 00 | UOffset32 | 0x00003668 (13928) Loc: +0x370C | offset to table[10]
- +0x00A8 | A0 36 00 00 | UOffset32 | 0x000036A0 (13984) Loc: +0x3748 | offset to table[11]
- +0x00AC | 90 37 00 00 | UOffset32 | 0x00003790 (14224) Loc: +0x383C | offset to table[12]
- +0x00B0 | 44 38 00 00 | UOffset32 | 0x00003844 (14404) Loc: +0x38F4 | offset to table[13]
- +0x00B4 | EC 36 00 00 | UOffset32 | 0x000036EC (14060) Loc: +0x37A0 | offset to table[14]
+ +0x00A0 | 30 36 00 00 | UOffset32 | 0x00003630 (13872) Loc: +0x36D0 | offset to table[9]
+ +0x00A4 | 20 3A 00 00 | UOffset32 | 0x00003A20 (14880) Loc: +0x3AC4 | offset to table[10]
+ +0x00A8 | 58 3A 00 00 | UOffset32 | 0x00003A58 (14936) Loc: +0x3B00 | offset to table[11]
+ +0x00AC | 48 3B 00 00 | UOffset32 | 0x00003B48 (15176) Loc: +0x3BF4 | offset to table[12]
+ +0x00B0 | FC 3B 00 00 | UOffset32 | 0x00003BFC (15356) Loc: +0x3CAC | offset to table[13]
+ +0x00B4 | A4 3A 00 00 | UOffset32 | 0x00003AA4 (15012) Loc: +0x3B58 | offset to table[14]
vector (reflection.Schema.fbs_files):
+0x00B8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
@@ -81,43 +81,43 @@
+0x00C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00C8 | offset to table[2]
table (reflection.SchemaFile):
- +0x00C8 | 64 CB FF FF | SOffset32 | 0xFFFFCB64 (-13468) Loc: +0x3564 | offset to vtable
- +0x00CC | 94 36 00 00 | UOffset32 | 0x00003694 (13972) Loc: +0x3760 | offset to field `key` (string)
+ +0x00C8 | AC C7 FF FF | SOffset32 | 0xFFFFC7AC (-14420) Loc: +0x391C | offset to vtable
+ +0x00CC | 4C 3A 00 00 | UOffset32 | 0x00003A4C (14924) Loc: +0x3B18 | offset to field `key` (string)
+0x00D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00D4 | offset to field `value` (string)
string (reflection.SchemaFile.value):
+0x00D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x00D8 | E0 | char[1] | à | string literal
- +0x00D9 | 36 | char | 0x36 (54) | string terminator
+ +0x00D8 | 98 | char[1] | | string literal
+ +0x00D9 | 3A | char | 0x3A (58) | string terminator
padding:
+0x00DA | 00 00 | uint8_t[2] | .. | padding
table (reflection.SchemaFile):
- +0x00DC | 78 CB FF FF | SOffset32 | 0xFFFFCB78 (-13448) Loc: +0x3564 | offset to vtable
- +0x00E0 | 34 38 00 00 | UOffset32 | 0x00003834 (14388) Loc: +0x3914 | offset to field `key` (string)
+ +0x00DC | C0 C7 FF FF | SOffset32 | 0xFFFFC7C0 (-14400) Loc: +0x391C | offset to vtable
+ +0x00E0 | EC 3B 00 00 | UOffset32 | 0x00003BEC (15340) Loc: +0x3CCC | offset to field `key` (string)
+0x00E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E8 | offset to field `value` (string)
string (reflection.SchemaFile.value):
+0x00E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x00EC | CC 36 | char[2] | Ì6 | string literal
+ +0x00EC | 84 3A | char[2] | : | string literal
+0x00EE | 00 | char | 0x00 (0) | string terminator
unknown (no known references):
- +0x00EF | 00 24 38 00 00 | ?uint8_t[5] | .$8.. | WARN: could be corrupted padding region.
+ +0x00EF | 00 DC 3B 00 00 | ?uint8_t[5] | ..;.. | WARN: could be corrupted padding region.
table (reflection.SchemaFile):
- +0x00F4 | 90 CB FF FF | SOffset32 | 0xFFFFCB90 (-13424) Loc: +0x3564 | offset to vtable
- +0x00F8 | C0 36 00 00 | UOffset32 | 0x000036C0 (14016) Loc: +0x37B8 | offset to field `key` (string)
+ +0x00F4 | D8 C7 FF FF | SOffset32 | 0xFFFFC7D8 (-14376) Loc: +0x391C | offset to vtable
+ +0x00F8 | 78 3A 00 00 | UOffset32 | 0x00003A78 (14968) Loc: +0x3B70 | offset to field `key` (string)
+0x00FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0100 | offset to field `value` (string)
string (reflection.SchemaFile.value):
+0x0100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x0104 | B4 36 | char[2] | ´6 | string literal
+ +0x0104 | 6C 3A | char[2] | l: | string literal
+0x0106 | 00 | char | 0x00 (0) | string terminator
unknown (no known references):
- +0x0107 | 00 0C 38 00 00 00 00 | ?uint8_t[7] | ..8.... | WARN: could be corrupted padding region.
+ +0x0107 | 00 C4 3B 00 00 00 00 | ?uint8_t[7] | ..;.... | WARN: could be corrupted padding region.
vtable (reflection.Service):
+0x010E | 0E 00 | uint16_t | 0x000E (14) | size of this vtable
@@ -133,7 +133,7 @@
+0x0120 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0148 | offset to field `name` (string)
+0x0124 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0134 | offset to field `calls` (vector)
+0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0130 | offset to field `documentation` (vector)
- +0x012C | 34 36 00 00 | UOffset32 | 0x00003634 (13876) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x012C | EC 39 00 00 | UOffset32 | 0x000039EC (14828) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Service.documentation):
+0x0130 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
@@ -160,7 +160,7 @@
+0x016C | BA FE FF FF | SOffset32 | 0xFFFFFEBA (-326) Loc: +0x02B2 | offset to vtable
+0x0170 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x01B8 | offset to field `name` (string)
+0x0174 | 5C 0D 00 00 | UOffset32 | 0x00000D5C (3420) Loc: +0x0ED0 | offset to field `request` (table)
- +0x0178 | D4 2D 00 00 | UOffset32 | 0x00002DD4 (11732) Loc: +0x2F4C | offset to field `response` (table)
+ +0x0178 | 8C 31 00 00 | UOffset32 | 0x0000318C (12684) Loc: +0x3304 | offset to field `response` (table)
+0x017C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0188 | offset to field `attributes` (vector)
+0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to field `documentation` (vector)
@@ -172,7 +172,7 @@
+0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0190 | offset to table[0]
table (reflection.KeyValue):
- +0x0190 | 2C CC FF FF | SOffset32 | 0xFFFFCC2C (-13268) Loc: +0x3564 | offset to vtable
+ +0x0190 | 74 C8 FF FF | SOffset32 | 0xFFFFC874 (-14220) Loc: +0x391C | offset to vtable
+0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01A8 | offset to field `key` (string)
+0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x019C | offset to field `value` (string)
@@ -204,7 +204,7 @@
+0x01D0 | 1E FF FF FF | SOffset32 | 0xFFFFFF1E (-226) Loc: +0x02B2 | offset to vtable
+0x01D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x021C | offset to field `name` (string)
+0x01D8 | F8 0C 00 00 | UOffset32 | 0x00000CF8 (3320) Loc: +0x0ED0 | offset to field `request` (table)
- +0x01DC | 70 2D 00 00 | UOffset32 | 0x00002D70 (11632) Loc: +0x2F4C | offset to field `response` (table)
+ +0x01DC | 28 31 00 00 | UOffset32 | 0x00003128 (12584) Loc: +0x3304 | offset to field `response` (table)
+0x01E0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x01EC | offset to field `attributes` (vector)
+0x01E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E8 | offset to field `documentation` (vector)
@@ -216,7 +216,7 @@
+0x01F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01F4 | offset to table[0]
table (reflection.KeyValue):
- +0x01F4 | 90 CC FF FF | SOffset32 | 0xFFFFCC90 (-13168) Loc: +0x3564 | offset to vtable
+ +0x01F4 | D8 C8 FF FF | SOffset32 | 0xFFFFC8D8 (-14120) Loc: +0x391C | offset to vtable
+0x01F8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x020C | offset to field `key` (string)
+0x01FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0200 | offset to field `value` (string)
@@ -243,7 +243,7 @@
table (reflection.RPCCall):
+0x0230 | 7E FF FF FF | SOffset32 | 0xFFFFFF7E (-130) Loc: +0x02B2 | offset to vtable
+0x0234 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x02A4 | offset to field `name` (string)
- +0x0238 | 14 2D 00 00 | UOffset32 | 0x00002D14 (11540) Loc: +0x2F4C | offset to field `request` (table)
+ +0x0238 | CC 30 00 00 | UOffset32 | 0x000030CC (12492) Loc: +0x3304 | offset to field `request` (table)
+0x023C | 94 0C 00 00 | UOffset32 | 0x00000C94 (3220) Loc: +0x0ED0 | offset to field `response` (table)
+0x0240 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x024C | offset to field `attributes` (vector)
+0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0248 | offset to field `documentation` (vector)
@@ -257,7 +257,7 @@
+0x0254 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0258 | offset to table[1]
table (reflection.KeyValue):
- +0x0258 | F4 CC FF FF | SOffset32 | 0xFFFFCCF4 (-13068) Loc: +0x3564 | offset to vtable
+ +0x0258 | 3C C9 FF FF | SOffset32 | 0xFFFFC93C (-14020) Loc: +0x391C | offset to vtable
+0x025C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0270 | offset to field `key` (string)
+0x0260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0264 | offset to field `value` (string)
@@ -276,7 +276,7 @@
+0x027E | 00 00 | uint8_t[2] | .. | padding
table (reflection.KeyValue):
- +0x0280 | 1C CD FF FF | SOffset32 | 0xFFFFCD1C (-13028) Loc: +0x3564 | offset to vtable
+ +0x0280 | 64 C9 FF FF | SOffset32 | 0xFFFFC964 (-13980) Loc: +0x391C | offset to vtable
+0x0284 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0294 | offset to field `key` (string)
+0x0288 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x028C | offset to field `value` (string)
@@ -312,7 +312,7 @@
+0x02C0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x02B2 | offset to vtable
+0x02C4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x030C | offset to field `name` (string)
+0x02C8 | 08 0C 00 00 | UOffset32 | 0x00000C08 (3080) Loc: +0x0ED0 | offset to field `request` (table)
- +0x02CC | 80 2C 00 00 | UOffset32 | 0x00002C80 (11392) Loc: +0x2F4C | offset to field `response` (table)
+ +0x02CC | 38 30 00 00 | UOffset32 | 0x00003038 (12344) Loc: +0x3304 | offset to field `response` (table)
+0x02D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x02DC | offset to field `attributes` (vector)
+0x02D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02D8 | offset to field `documentation` (vector)
@@ -324,7 +324,7 @@
+0x02E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02E4 | offset to table[0]
table (reflection.KeyValue):
- +0x02E4 | 80 CD FF FF | SOffset32 | 0xFFFFCD80 (-12928) Loc: +0x3564 | offset to vtable
+ +0x02E4 | C8 C9 FF FF | SOffset32 | 0xFFFFC9C8 (-13880) Loc: +0x391C | offset to vtable
+0x02E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x02FC | offset to field `key` (string)
+0x02EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02F0 | offset to field `value` (string)
@@ -361,13 +361,13 @@
+0x0324 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x034C | offset to field `values` (vector)
+0x0328 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0338 | offset to field `underlying_type` (table)
+0x032C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0334 | offset to field `documentation` (vector)
- +0x0330 | 30 34 00 00 | UOffset32 | 0x00003430 (13360) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0330 | E8 37 00 00 | UOffset32 | 0x000037E8 (14312) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x0334 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0338 | 34 CD FF FF | SOffset32 | 0xFFFFCD34 (-13004) Loc: +0x3604 | offset to vtable
+ +0x0338 | 7C C9 FF FF | SOffset32 | 0xFFFFC97C (-13956) Loc: +0x39BC | offset to vtable
+0x033C | 00 00 00 | uint8_t[3] | ... | padding
+0x033F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
+0x0340 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
@@ -402,7 +402,7 @@
+0x03A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x03A8 | F0 CA FF FF | SOffset32 | 0xFFFFCAF0 (-13584) Loc: +0x38B8 | offset to vtable
+ +0x03A8 | 38 C7 FF FF | SOffset32 | 0xFFFFC738 (-14536) Loc: +0x3C70 | offset to vtable
+0x03AC | 00 00 00 | uint8_t[3] | ... | padding
+0x03AF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x03B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
@@ -425,7 +425,7 @@
+0x03DC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x03E0 | 28 CB FF FF | SOffset32 | 0xFFFFCB28 (-13528) Loc: +0x38B8 | offset to vtable
+ +0x03E0 | 70 C7 FF FF | SOffset32 | 0xFFFFC770 (-14480) Loc: +0x3C70 | offset to vtable
+0x03E4 | 00 00 00 | uint8_t[3] | ... | padding
+0x03E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x03E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
@@ -448,7 +448,7 @@
+0x0414 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0418 | 60 CB FF FF | SOffset32 | 0xFFFFCB60 (-13472) Loc: +0x38B8 | offset to vtable
+ +0x0418 | A8 C7 FF FF | SOffset32 | 0xFFFFC7A8 (-14424) Loc: +0x3C70 | offset to vtable
+0x041C | 00 00 00 | uint8_t[3] | ... | padding
+0x041F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x0420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
@@ -489,13 +489,13 @@
+0x0468 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0490 | offset to field `values` (vector)
+0x046C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x047C | offset to field `underlying_type` (table)
+0x0470 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0478 | offset to field `documentation` (vector)
- +0x0474 | EC 32 00 00 | UOffset32 | 0x000032EC (13036) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0474 | A4 36 00 00 | UOffset32 | 0x000036A4 (13988) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x0478 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x047C | 78 CE FF FF | SOffset32 | 0xFFFFCE78 (-12680) Loc: +0x3604 | offset to vtable
+ +0x047C | C0 CA FF FF | SOffset32 | 0xFFFFCAC0 (-13632) Loc: +0x39BC | offset to vtable
+0x0480 | 00 00 00 | uint8_t[3] | ... | padding
+0x0483 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
+0x0484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
@@ -529,7 +529,7 @@
+0x04E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x04E8 | 30 CC FF FF | SOffset32 | 0xFFFFCC30 (-13264) Loc: +0x38B8 | offset to vtable
+ +0x04E8 | 78 C8 FF FF | SOffset32 | 0xFFFFC878 (-14216) Loc: +0x3C70 | offset to vtable
+0x04EC | 00 00 00 | uint8_t[3] | ... | padding
+0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x04F0 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int)
@@ -552,7 +552,7 @@
+0x051C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0520 | 68 CC FF FF | SOffset32 | 0xFFFFCC68 (-13208) Loc: +0x38B8 | offset to vtable
+ +0x0520 | B0 C8 FF FF | SOffset32 | 0xFFFFC8B0 (-14160) Loc: +0x3C70 | offset to vtable
+0x0524 | 00 00 00 | uint8_t[3] | ... | padding
+0x0527 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x0528 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int)
@@ -574,7 +574,7 @@
+0x0550 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0554 | 9C CC FF FF | SOffset32 | 0xFFFFCC9C (-13156) Loc: +0x38B8 | offset to vtable
+ +0x0554 | E4 C8 FF FF | SOffset32 | 0xFFFFC8E4 (-14108) Loc: +0x3C70 | offset to vtable
+0x0558 | 00 00 00 | uint8_t[3] | ... | padding
+0x055B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x055C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
@@ -626,13 +626,13 @@
+0x05B4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x05DC | offset to field `values` (vector)
+0x05B8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x05C8 | offset to field `underlying_type` (table)
+0x05BC | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x05C4 | offset to field `documentation` (vector)
- +0x05C0 | A0 31 00 00 | UOffset32 | 0x000031A0 (12704) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x05C0 | 58 35 00 00 | UOffset32 | 0x00003558 (13656) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x05C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x05C8 | C4 CF FF FF | SOffset32 | 0xFFFFCFC4 (-12348) Loc: +0x3604 | offset to vtable
+ +0x05C8 | 0C CC FF FF | SOffset32 | 0xFFFFCC0C (-13300) Loc: +0x39BC | offset to vtable
+0x05CC | 00 00 00 | uint8_t[3] | ... | padding
+0x05CF | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
+0x05D0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
@@ -664,7 +664,7 @@
+0x0620 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0624 | 6C CD FF FF | SOffset32 | 0xFFFFCD6C (-12948) Loc: +0x38B8 | offset to vtable
+ +0x0624 | B4 C9 FF FF | SOffset32 | 0xFFFFC9B4 (-13900) Loc: +0x3C70 | offset to vtable
+0x0628 | 00 00 00 | uint8_t[3] | ... | padding
+0x062B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x062C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int)
@@ -688,7 +688,7 @@
+0x0668 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x066C | B4 CD FF FF | SOffset32 | 0xFFFFCDB4 (-12876) Loc: +0x38B8 | offset to vtable
+ +0x066C | FC C9 FF FF | SOffset32 | 0xFFFFC9FC (-13828) Loc: +0x3C70 | offset to vtable
+0x0670 | 00 00 00 | uint8_t[3] | ... | padding
+0x0673 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x0674 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int)
@@ -712,7 +712,7 @@
+0x06B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x06B4 | FC CD FF FF | SOffset32 | 0xFFFFCDFC (-12804) Loc: +0x38B8 | offset to vtable
+ +0x06B4 | 44 CA FF FF | SOffset32 | 0xFFFFCA44 (-13756) Loc: +0x3C70 | offset to vtable
+0x06B8 | 00 00 00 | uint8_t[3] | ... | padding
+0x06BB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+0x06BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
@@ -752,7 +752,7 @@
+0x0708 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0748 | offset to field `underlying_type` (table)
+0x070C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x071C | offset to field `attributes` (vector)
+0x0710 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0718 | offset to field `documentation` (vector)
- +0x0714 | 4C 30 00 00 | UOffset32 | 0x0000304C (12364) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0714 | 04 34 00 00 | UOffset32 | 0x00003404 (13316) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x0718 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
@@ -762,7 +762,7 @@
+0x0720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0724 | offset to table[0]
table (reflection.KeyValue):
- +0x0724 | C0 D1 FF FF | SOffset32 | 0xFFFFD1C0 (-11840) Loc: +0x3564 | offset to vtable
+ +0x0724 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: +0x391C | offset to vtable
+0x0728 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0738 | offset to field `key` (string)
+0x072C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0730 | offset to field `value` (string)
@@ -784,7 +784,7 @@
+0x0746 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Type):
- +0x0748 | 44 D1 FF FF | SOffset32 | 0xFFFFD144 (-11964) Loc: +0x3604 | offset to vtable
+ +0x0748 | 8C CD FF FF | SOffset32 | 0xFFFFCD8C (-12916) Loc: +0x39BC | offset to vtable
+0x074C | 00 00 00 | uint8_t[3] | ... | padding
+0x074F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+0x0750 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
@@ -872,13 +872,13 @@
+0x0834 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x085C | offset to field `values` (vector)
+0x0838 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0848 | offset to field `underlying_type` (table)
+0x083C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0844 | offset to field `documentation` (vector)
- +0x0840 | 20 2F 00 00 | UOffset32 | 0x00002F20 (12064) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0840 | D8 32 00 00 | UOffset32 | 0x000032D8 (13016) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x0844 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0848 | 44 D2 FF FF | SOffset32 | 0xFFFFD244 (-11708) Loc: +0x3604 | offset to vtable
+ +0x0848 | 8C CE FF FF | SOffset32 | 0xFFFFCE8C (-12660) Loc: +0x39BC | offset to vtable
+0x084C | 00 00 00 | uint8_t[3] | ... | padding
+0x084F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte)
+0x0850 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int)
@@ -1009,7 +1009,7 @@
+0x0978 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x09E8 | offset to field `underlying_type` (table)
+0x097C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x09BC | offset to field `attributes` (vector)
+0x0980 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0988 | offset to field `documentation` (vector)
- +0x0984 | DC 2D 00 00 | UOffset32 | 0x00002DDC (11740) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0984 | 94 31 00 00 | UOffset32 | 0x00003194 (12692) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x0988 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
@@ -1029,7 +1029,7 @@
+0x09C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09C4 | offset to table[0]
table (reflection.KeyValue):
- +0x09C4 | 60 D4 FF FF | SOffset32 | 0xFFFFD460 (-11168) Loc: +0x3564 | offset to vtable
+ +0x09C4 | A8 D0 FF FF | SOffset32 | 0xFFFFD0A8 (-12120) Loc: +0x391C | offset to vtable
+0x09C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x09D8 | offset to field `key` (string)
+0x09CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09D0 | offset to field `value` (string)
@@ -1051,7 +1051,7 @@
+0x09E6 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Type):
- +0x09E8 | E4 D3 FF FF | SOffset32 | 0xFFFFD3E4 (-11292) Loc: +0x3604 | offset to vtable
+ +0x09E8 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x39BC | offset to vtable
+0x09EC | 00 00 00 | uint8_t[3] | ... | padding
+0x09EF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
+0x09F0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
@@ -1199,13 +1199,13 @@
+0x0B68 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0B90 | offset to field `values` (vector)
+0x0B6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0B7C | offset to field `underlying_type` (table)
+0x0B70 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0B78 | offset to field `documentation` (vector)
- +0x0B74 | A0 2D 00 00 | UOffset32 | 0x00002DA0 (11680) Loc: +0x3914 | offset to field `declaration_file` (string)
+ +0x0B74 | 58 31 00 00 | UOffset32 | 0x00003158 (12632) Loc: +0x3CCC | offset to field `declaration_file` (string)
vector (reflection.Enum.documentation):
+0x0B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0B7C | 78 D5 FF FF | SOffset32 | 0xFFFFD578 (-10888) Loc: +0x3604 | offset to vtable
+ +0x0B7C | C0 D1 FF FF | SOffset32 | 0xFFFFD1C0 (-11840) Loc: +0x39BC | offset to vtable
+0x0B80 | 00 00 00 | uint8_t[3] | ... | padding
+0x0B83 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
+0x0B84 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
@@ -1265,12 +1265,12 @@
+0x0C0A | 00 | char | 0x00 (0) | string terminator
table (reflection.Object):
- +0x0C0C | E4 D3 FF FF | SOffset32 | 0xFFFFD3E4 (-11292) Loc: +0x3828 | offset to vtable
+ +0x0C0C | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x3BE0 | offset to vtable
+0x0C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x0C5C | offset to field `name` (string)
+0x0C14 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C28 | offset to field `fields` (vector)
+0x0C18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+0x0C1C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0C24 | offset to field `documentation` (vector)
- +0x0C20 | 40 2B 00 00 | UOffset32 | 0x00002B40 (11072) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0C20 | F8 2E 00 00 | UOffset32 | 0x00002EF8 (12024) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
+0x0C24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
@@ -1299,7 +1299,7 @@
+0x0C7A | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0C7C | 00 DB FF FF | SOffset32 | 0xFFFFDB00 (-9472) Loc: +0x317C | offset to vtable
+ +0x0C7C | 48 D7 FF FF | SOffset32 | 0xFFFFD748 (-10424) Loc: +0x3534 | offset to vtable
+0x0C80 | 00 00 00 | uint8_t[3] | ... | padding
+0x0C83 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+0x0C84 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort)
@@ -1312,7 +1312,7 @@
+0x0C94 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0C98 | 14 E1 FF FF | SOffset32 | 0xFFFFE114 (-7916) Loc: +0x2B84 | offset to vtable
+ +0x0C98 | 5C DD FF FF | SOffset32 | 0xFFFFDD5C (-8868) Loc: +0x2F3C | offset to vtable
+0x0C9C | 00 00 | uint8_t[2] | .. | padding
+0x0C9E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+0x0C9F | 0C | uint8_t | 0x0C (12) | table field `element` (Byte)
@@ -1327,7 +1327,7 @@
+0x0CAD | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x0CB0 | 34 DB FF FF | SOffset32 | 0xFFFFDB34 (-9420) Loc: +0x317C | offset to vtable
+ +0x0CB0 | 7C D7 FF FF | SOffset32 | 0xFFFFD77C (-10372) Loc: +0x3534 | offset to vtable
+0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding
+0x0CB7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+0x0CB8 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort)
@@ -1340,7 +1340,7 @@
+0x0CC8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0CCC | 48 E1 FF FF | SOffset32 | 0xFFFFE148 (-7864) Loc: +0x2B84 | offset to vtable
+ +0x0CCC | 90 DD FF FF | SOffset32 | 0xFFFFDD90 (-8816) Loc: +0x2F3C | offset to vtable
+0x0CD0 | 00 00 | uint8_t[2] | .. | padding
+0x0CD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+0x0CD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte)
@@ -1352,7 +1352,7 @@
+0x0CDE | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0CE0 | 4A D8 FF FF | SOffset32 | 0xFFFFD84A (-10166) Loc: +0x3496 | offset to vtable
+ +0x0CE0 | 92 D4 FF FF | SOffset32 | 0xFFFFD492 (-11118) Loc: +0x384E | offset to vtable
+0x0CE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort)
+0x0CE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort)
+0x0CE8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D08 | offset to field `name` (string)
@@ -1363,7 +1363,7 @@
+0x0CF4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0CF8 | 14 D6 FF FF | SOffset32 | 0xFFFFD614 (-10732) Loc: +0x36E4 | offset to vtable
+ +0x0CF8 | 5C D2 FF FF | SOffset32 | 0xFFFFD25C (-11684) Loc: +0x3A9C | offset to vtable
+0x0CFC | 00 00 00 | uint8_t[3] | ... | padding
+0x0CFF | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte)
+0x0D00 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
@@ -1375,7 +1375,7 @@
+0x0D0F | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0D10 | 7A D8 FF FF | SOffset32 | 0xFFFFD87A (-10118) Loc: +0x3496 | offset to vtable
+ +0x0D10 | C2 D4 FF FF | SOffset32 | 0xFFFFD4C2 (-11070) Loc: +0x384E | offset to vtable
+0x0D14 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort)
+0x0D16 | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort)
+0x0D18 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0D34 | offset to field `name` (string)
@@ -1386,7 +1386,7 @@
+0x0D24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0D28 | 8C D3 FF FF | SOffset32 | 0xFFFFD38C (-11380) Loc: +0x399C | offset to vtable
+ +0x0D28 | D4 CF FF FF | SOffset32 | 0xFFFFCFD4 (-12332) Loc: +0x3D54 | offset to vtable
+0x0D2C | 00 00 00 | uint8_t[3] | ... | padding
+0x0D2F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+0x0D30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
@@ -1397,7 +1397,7 @@
+0x0D3B | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0D3C | A6 D8 FF FF | SOffset32 | 0xFFFFD8A6 (-10074) Loc: +0x3496 | offset to vtable
+ +0x0D3C | EE D4 FF FF | SOffset32 | 0xFFFFD4EE (-11026) Loc: +0x384E | offset to vtable
+0x0D40 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort)
+0x0D42 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort)
+0x0D44 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D64 | offset to field `name` (string)
@@ -1408,7 +1408,7 @@
+0x0D50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0D54 | 70 D6 FF FF | SOffset32 | 0xFFFFD670 (-10640) Loc: +0x36E4 | offset to vtable
+ +0x0D54 | B8 D2 FF FF | SOffset32 | 0xFFFFD2B8 (-11592) Loc: +0x3A9C | offset to vtable
+0x0D58 | 00 00 00 | uint8_t[3] | ... | padding
+0x0D5B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+0x0D5C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
@@ -1420,7 +1420,7 @@
+0x0D6B | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0D6C | D6 D8 FF FF | SOffset32 | 0xFFFFD8D6 (-10026) Loc: +0x3496 | offset to vtable
+ +0x0D6C | 1E D5 FF FF | SOffset32 | 0xFFFFD51E (-10978) Loc: +0x384E | offset to vtable
+0x0D70 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort)
+0x0D72 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort)
+0x0D74 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D94 | offset to field `name` (string)
@@ -1431,7 +1431,7 @@
+0x0D80 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0D84 | A0 D6 FF FF | SOffset32 | 0xFFFFD6A0 (-10592) Loc: +0x36E4 | offset to vtable
+ +0x0D84 | E8 D2 FF FF | SOffset32 | 0xFFFFD2E8 (-11544) Loc: +0x3A9C | offset to vtable
+0x0D88 | 00 00 00 | uint8_t[3] | ... | padding
+0x0D8B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
+0x0D8C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
@@ -1443,7 +1443,7 @@
+0x0D9B | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0D9C | 06 D9 FF FF | SOffset32 | 0xFFFFD906 (-9978) Loc: +0x3496 | offset to vtable
+ +0x0D9C | 4E D5 FF FF | SOffset32 | 0xFFFFD54E (-10930) Loc: +0x384E | offset to vtable
+0x0DA0 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort)
+0x0DA2 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort)
+0x0DA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0DC0 | offset to field `name` (string)
@@ -1454,7 +1454,7 @@
+0x0DB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0DB4 | 18 D4 FF FF | SOffset32 | 0xFFFFD418 (-11240) Loc: +0x399C | offset to vtable
+ +0x0DB4 | 60 D0 FF FF | SOffset32 | 0xFFFFD060 (-12192) Loc: +0x3D54 | offset to vtable
+0x0DB8 | 00 00 00 | uint8_t[3] | ... | padding
+0x0DBB | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
+0x0DBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
@@ -1465,7 +1465,7 @@
+0x0DC7 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0DC8 | 32 D9 FF FF | SOffset32 | 0xFFFFD932 (-9934) Loc: +0x3496 | offset to vtable
+ +0x0DC8 | 7A D5 FF FF | SOffset32 | 0xFFFFD57A (-10886) Loc: +0x384E | offset to vtable
+0x0DCC | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort)
+0x0DCE | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort)
+0x0DD0 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0DEC | offset to field `name` (string)
@@ -1476,7 +1476,7 @@
+0x0DDC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0DE0 | 44 D4 FF FF | SOffset32 | 0xFFFFD444 (-11196) Loc: +0x399C | offset to vtable
+ +0x0DE0 | 8C D0 FF FF | SOffset32 | 0xFFFFD08C (-12148) Loc: +0x3D54 | offset to vtable
+0x0DE4 | 00 00 00 | uint8_t[3] | ... | padding
+0x0DE7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
+0x0DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
@@ -1487,7 +1487,7 @@
+0x0DF3 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0DF4 | 5E D9 FF FF | SOffset32 | 0xFFFFD95E (-9890) Loc: +0x3496 | offset to vtable
+ +0x0DF4 | A6 D5 FF FF | SOffset32 | 0xFFFFD5A6 (-10842) Loc: +0x384E | offset to vtable
+0x0DF8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort)
+0x0DFA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort)
+0x0DFC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E1C | offset to field `name` (string)
@@ -1498,7 +1498,7 @@
+0x0E08 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0E0C | 28 D7 FF FF | SOffset32 | 0xFFFFD728 (-10456) Loc: +0x36E4 | offset to vtable
+ +0x0E0C | 70 D3 FF FF | SOffset32 | 0xFFFFD370 (-11408) Loc: +0x3A9C | offset to vtable
+0x0E10 | 00 00 00 | uint8_t[3] | ... | padding
+0x0E13 | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte)
+0x0E14 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
@@ -1510,7 +1510,7 @@
+0x0E23 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0E24 | 8E D9 FF FF | SOffset32 | 0xFFFFD98E (-9842) Loc: +0x3496 | offset to vtable
+ +0x0E24 | D6 D5 FF FF | SOffset32 | 0xFFFFD5D6 (-10794) Loc: +0x384E | offset to vtable
+0x0E28 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
+0x0E2A | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
+0x0E2C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E4C | offset to field `name` (string)
@@ -1521,7 +1521,7 @@
+0x0E38 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0E3C | 58 D7 FF FF | SOffset32 | 0xFFFFD758 (-10408) Loc: +0x36E4 | offset to vtable
+ +0x0E3C | A0 D3 FF FF | SOffset32 | 0xFFFFD3A0 (-11360) Loc: +0x3A9C | offset to vtable
+0x0E40 | 00 00 00 | uint8_t[3] | ... | padding
+0x0E43 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
+0x0E44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
@@ -1533,7 +1533,7 @@
+0x0E53 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x0E54 | BE D9 FF FF | SOffset32 | 0xFFFFD9BE (-9794) Loc: +0x3496 | offset to vtable
+ +0x0E54 | 06 D6 FF FF | SOffset32 | 0xFFFFD606 (-10746) Loc: +0x384E | offset to vtable
+0x0E58 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+0x0E5A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort)
+0x0E5C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E7C | offset to field `name` (string)
@@ -1544,7 +1544,7 @@
+0x0E68 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0E6C | 88 D7 FF FF | SOffset32 | 0xFFFFD788 (-10360) Loc: +0x36E4 | offset to vtable
+ +0x0E6C | D0 D3 FF FF | SOffset32 | 0xFFFFD3D0 (-11312) Loc: +0x3A9C | offset to vtable
+0x0E70 | 00 00 00 | uint8_t[3] | ... | padding
+0x0E73 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
+0x0E74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
@@ -1585,7 +1585,7 @@
+0x0EB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x0EB8 | D4 D7 FF FF | SOffset32 | 0xFFFFD7D4 (-10284) Loc: +0x36E4 | offset to vtable
+ +0x0EB8 | 1C D4 FF FF | SOffset32 | 0xFFFFD41C (-11236) Loc: +0x3A9C | offset to vtable
+0x0EBC | 00 00 00 | uint8_t[3] | ... | padding
+0x0EBF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte)
+0x0EC0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
@@ -1597,12 +1597,12 @@
+0x0ECE | 00 | char | 0x00 (0) | string terminator
table (reflection.Object):
- +0x0ED0 | A8 D6 FF FF | SOffset32 | 0xFFFFD6A8 (-10584) Loc: +0x3828 | offset to vtable
- +0x0ED4 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x1004 | offset to field `name` (string)
+ +0x0ED0 | F0 D2 FF FF | SOffset32 | 0xFFFFD2F0 (-11536) Loc: +0x3BE0 | offset to vtable
+ +0x0ED4 | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1024 | offset to field `name` (string)
+0x0ED8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x0F28 | offset to field `fields` (vector)
+0x0EDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+0x0EE0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0EE8 | offset to field `documentation` (vector)
- +0x0EE4 | 7C 28 00 00 | UOffset32 | 0x0000287C (10364) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x0EE4 | 34 2C 00 00 | UOffset32 | 0x00002C34 (11316) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
+0x0EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
@@ -1620,682 +1620,664 @@
+0x0F27 | 00 | char | 0x00 (0) | string terminator
vector (reflection.Object.fields):
- +0x0F28 | 36 00 00 00 | uint32_t | 0x00000036 (54) | length of vector (# items)
- +0x0F2C | 80 04 00 00 | UOffset32 | 0x00000480 (1152) Loc: +0x13AC | offset to table[0]
- +0x0F30 | E4 04 00 00 | UOffset32 | 0x000004E4 (1252) Loc: +0x1414 | offset to table[1]
- +0x0F34 | 4C 05 00 00 | UOffset32 | 0x0000054C (1356) Loc: +0x1480 | offset to table[2]
- +0x0F38 | AC 05 00 00 | UOffset32 | 0x000005AC (1452) Loc: +0x14E4 | offset to table[3]
- +0x0F3C | A8 09 00 00 | UOffset32 | 0x000009A8 (2472) Loc: +0x18E4 | offset to table[4]
- +0x0F40 | 78 1B 00 00 | UOffset32 | 0x00001B78 (7032) Loc: +0x2AB8 | offset to table[5]
- +0x0F44 | 88 18 00 00 | UOffset32 | 0x00001888 (6280) Loc: +0x27CC | offset to table[6]
- +0x0F48 | 44 0F 00 00 | UOffset32 | 0x00000F44 (3908) Loc: +0x1E8C | offset to table[7]
- +0x0F4C | 7C 1C 00 00 | UOffset32 | 0x00001C7C (7292) Loc: +0x2BC8 | offset to table[8]
- +0x0F50 | C0 1D 00 00 | UOffset32 | 0x00001DC0 (7616) Loc: +0x2D10 | offset to table[9]
- +0x0F54 | EC 1B 00 00 | UOffset32 | 0x00001BEC (7148) Loc: +0x2B40 | offset to table[10]
- +0x0F58 | 44 01 00 00 | UOffset32 | 0x00000144 (324) Loc: +0x109C | offset to table[11]
- +0x0F5C | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x1020 | offset to table[12]
- +0x0F60 | 30 1E 00 00 | UOffset32 | 0x00001E30 (7728) Loc: +0x2D90 | offset to table[13]
- +0x0F64 | 30 1D 00 00 | UOffset32 | 0x00001D30 (7472) Loc: +0x2C94 | offset to table[14]
- +0x0F68 | A8 01 00 00 | UOffset32 | 0x000001A8 (424) Loc: +0x1110 | offset to table[15]
- +0x0F6C | 10 07 00 00 | UOffset32 | 0x00000710 (1808) Loc: +0x167C | offset to table[16]
- +0x0F70 | 80 0D 00 00 | UOffset32 | 0x00000D80 (3456) Loc: +0x1CF0 | offset to table[17]
- +0x0F74 | A0 1E 00 00 | UOffset32 | 0x00001EA0 (7840) Loc: +0x2E14 | offset to table[18]
- +0x0F78 | 2C 02 00 00 | UOffset32 | 0x0000022C (556) Loc: +0x11A4 | offset to table[19]
- +0x0F7C | 5C 03 00 00 | UOffset32 | 0x0000035C (860) Loc: +0x12D8 | offset to table[20]
- +0x0F80 | 08 0C 00 00 | UOffset32 | 0x00000C08 (3080) Loc: +0x1B88 | offset to table[21]
- +0x0F84 | 58 1A 00 00 | UOffset32 | 0x00001A58 (6744) Loc: +0x29DC | offset to table[22]
- +0x0F88 | E4 19 00 00 | UOffset32 | 0x000019E4 (6628) Loc: +0x296C | offset to table[23]
- +0x0F8C | A0 0E 00 00 | UOffset32 | 0x00000EA0 (3744) Loc: +0x1E2C | offset to table[24]
- +0x0F90 | C4 1A 00 00 | UOffset32 | 0x00001AC4 (6852) Loc: +0x2A54 | offset to table[25]
- +0x0F94 | 90 11 00 00 | UOffset32 | 0x00001190 (4496) Loc: +0x2124 | offset to table[26]
- +0x0F98 | 78 0F 00 00 | UOffset32 | 0x00000F78 (3960) Loc: +0x1F10 | offset to table[27]
- +0x0F9C | 68 19 00 00 | UOffset32 | 0x00001968 (6504) Loc: +0x2904 | offset to table[28]
- +0x0FA0 | E0 0F 00 00 | UOffset32 | 0x00000FE0 (4064) Loc: +0x1F80 | offset to table[29]
- +0x0FA4 | 88 18 00 00 | UOffset32 | 0x00001888 (6280) Loc: +0x282C | offset to table[30]
- +0x0FA8 | C0 16 00 00 | UOffset32 | 0x000016C0 (5824) Loc: +0x2668 | offset to table[31]
- +0x0FAC | 1C 17 00 00 | UOffset32 | 0x0000171C (5916) Loc: +0x26C8 | offset to table[32]
- +0x0FB0 | 10 11 00 00 | UOffset32 | 0x00001110 (4368) Loc: +0x20C0 | offset to table[33]
- +0x0FB4 | 8C 10 00 00 | UOffset32 | 0x0000108C (4236) Loc: +0x2040 | offset to table[34]
- +0x0FB8 | 30 10 00 00 | UOffset32 | 0x00001030 (4144) Loc: +0x1FE8 | offset to table[35]
- +0x0FBC | 20 16 00 00 | UOffset32 | 0x00001620 (5664) Loc: +0x25DC | offset to table[36]
- +0x0FC0 | E0 13 00 00 | UOffset32 | 0x000013E0 (5088) Loc: +0x23A0 | offset to table[37]
- +0x0FC4 | FC 14 00 00 | UOffset32 | 0x000014FC (5372) Loc: +0x24C0 | offset to table[38]
- +0x0FC8 | 58 12 00 00 | UOffset32 | 0x00001258 (4696) Loc: +0x2220 | offset to table[39]
- +0x0FCC | 84 15 00 00 | UOffset32 | 0x00001584 (5508) Loc: +0x2550 | offset to table[40]
- +0x0FD0 | E4 12 00 00 | UOffset32 | 0x000012E4 (4836) Loc: +0x22B4 | offset to table[41]
- +0x0FD4 | 5C 14 00 00 | UOffset32 | 0x0000145C (5212) Loc: +0x2430 | offset to table[42]
- +0x0FD8 | B4 11 00 00 | UOffset32 | 0x000011B4 (4532) Loc: +0x218C | offset to table[43]
- +0x0FDC | 50 17 00 00 | UOffset32 | 0x00001750 (5968) Loc: +0x272C | offset to table[44]
- +0x0FE0 | 38 02 00 00 | UOffset32 | 0x00000238 (568) Loc: +0x1218 | offset to table[45]
- +0x0FE4 | C0 07 00 00 | UOffset32 | 0x000007C0 (1984) Loc: +0x17A4 | offset to table[46]
- +0x0FE8 | 78 0D 00 00 | UOffset32 | 0x00000D78 (3448) Loc: +0x1D60 | offset to table[47]
- +0x0FEC | 58 03 00 00 | UOffset32 | 0x00000358 (856) Loc: +0x1344 | offset to table[48]
- +0x0FF0 | D8 0D 00 00 | UOffset32 | 0x00000DD8 (3544) Loc: +0x1DC8 | offset to table[49]
- +0x0FF4 | 58 05 00 00 | UOffset32 | 0x00000558 (1368) Loc: +0x154C | offset to table[50]
- +0x0FF8 | 88 0C 00 00 | UOffset32 | 0x00000C88 (3208) Loc: +0x1C80 | offset to table[51]
- +0x0FFC | DC 09 00 00 | UOffset32 | 0x000009DC (2524) Loc: +0x19D8 | offset to table[52]
- +0x1000 | 8C 0A 00 00 | UOffset32 | 0x00000A8C (2700) Loc: +0x1A8C | offset to table[53]
+ +0x0F28 | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items)
+ +0x0F2C | 38 08 00 00 | UOffset32 | 0x00000838 (2104) Loc: +0x1764 | offset to table[0]
+ +0x0F30 | 9C 08 00 00 | UOffset32 | 0x0000089C (2204) Loc: +0x17CC | offset to table[1]
+ +0x0F34 | 04 09 00 00 | UOffset32 | 0x00000904 (2308) Loc: +0x1838 | offset to table[2]
+ +0x0F38 | 64 09 00 00 | UOffset32 | 0x00000964 (2404) Loc: +0x189C | offset to table[3]
+ +0x0F3C | 60 0D 00 00 | UOffset32 | 0x00000D60 (3424) Loc: +0x1C9C | offset to table[4]
+ +0x0F40 | 30 1F 00 00 | UOffset32 | 0x00001F30 (7984) Loc: +0x2E70 | offset to table[5]
+ +0x0F44 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x1040 | offset to table[6]
+ +0x0F48 | 3C 1C 00 00 | UOffset32 | 0x00001C3C (7228) Loc: +0x2B84 | offset to table[7]
+ +0x0F4C | F8 12 00 00 | UOffset32 | 0x000012F8 (4856) Loc: +0x2244 | offset to table[8]
+ +0x0F50 | 30 20 00 00 | UOffset32 | 0x00002030 (8240) Loc: +0x2F80 | offset to table[9]
+ +0x0F54 | 74 21 00 00 | UOffset32 | 0x00002174 (8564) Loc: +0x30C8 | offset to table[10]
+ +0x0F58 | B0 03 00 00 | UOffset32 | 0x000003B0 (944) Loc: +0x1308 | offset to table[11]
+ +0x0F5C | B4 02 00 00 | UOffset32 | 0x000002B4 (692) Loc: +0x1210 | offset to table[12]
+ +0x0F60 | 98 1F 00 00 | UOffset32 | 0x00001F98 (8088) Loc: +0x2EF8 | offset to table[13]
+ +0x0F64 | F0 04 00 00 | UOffset32 | 0x000004F0 (1264) Loc: +0x1454 | offset to table[14]
+ +0x0F68 | 70 04 00 00 | UOffset32 | 0x00000470 (1136) Loc: +0x13D8 | offset to table[15]
+ +0x0F6C | DC 21 00 00 | UOffset32 | 0x000021DC (8668) Loc: +0x3148 | offset to table[16]
+ +0x0F70 | DC 20 00 00 | UOffset32 | 0x000020DC (8412) Loc: +0x304C | offset to table[17]
+ +0x0F74 | FC 03 00 00 | UOffset32 | 0x000003FC (1020) Loc: +0x1370 | offset to table[18]
+ +0x0F78 | 50 05 00 00 | UOffset32 | 0x00000550 (1360) Loc: +0x14C8 | offset to table[19]
+ +0x0F7C | AC 01 00 00 | UOffset32 | 0x000001AC (428) Loc: +0x1128 | offset to table[20]
+ +0x0F80 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x10B0 | offset to table[21]
+ +0x0F84 | B0 0A 00 00 | UOffset32 | 0x00000AB0 (2736) Loc: +0x1A34 | offset to table[22]
+ +0x0F88 | 20 11 00 00 | UOffset32 | 0x00001120 (4384) Loc: +0x20A8 | offset to table[23]
+ +0x0F8C | 40 22 00 00 | UOffset32 | 0x00002240 (8768) Loc: +0x31CC | offset to table[24]
+ +0x0F90 | 08 03 00 00 | UOffset32 | 0x00000308 (776) Loc: +0x1298 | offset to table[25]
+ +0x0F94 | 04 02 00 00 | UOffset32 | 0x00000204 (516) Loc: +0x1198 | offset to table[26]
+ +0x0F98 | C4 05 00 00 | UOffset32 | 0x000005C4 (1476) Loc: +0x155C | offset to table[27]
+ +0x0F9C | F4 06 00 00 | UOffset32 | 0x000006F4 (1780) Loc: +0x1690 | offset to table[28]
+ +0x0FA0 | A0 0F 00 00 | UOffset32 | 0x00000FA0 (4000) Loc: +0x1F40 | offset to table[29]
+ +0x0FA4 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: +0x2D94 | offset to table[30]
+ +0x0FA8 | 7C 1D 00 00 | UOffset32 | 0x00001D7C (7548) Loc: +0x2D24 | offset to table[31]
+ +0x0FAC | 38 12 00 00 | UOffset32 | 0x00001238 (4664) Loc: +0x21E4 | offset to table[32]
+ +0x0FB0 | 5C 1E 00 00 | UOffset32 | 0x00001E5C (7772) Loc: +0x2E0C | offset to table[33]
+ +0x0FB4 | 28 15 00 00 | UOffset32 | 0x00001528 (5416) Loc: +0x24DC | offset to table[34]
+ +0x0FB8 | 10 13 00 00 | UOffset32 | 0x00001310 (4880) Loc: +0x22C8 | offset to table[35]
+ +0x0FBC | 00 1D 00 00 | UOffset32 | 0x00001D00 (7424) Loc: +0x2CBC | offset to table[36]
+ +0x0FC0 | 78 13 00 00 | UOffset32 | 0x00001378 (4984) Loc: +0x2338 | offset to table[37]
+ +0x0FC4 | 20 1C 00 00 | UOffset32 | 0x00001C20 (7200) Loc: +0x2BE4 | offset to table[38]
+ +0x0FC8 | 58 1A 00 00 | UOffset32 | 0x00001A58 (6744) Loc: +0x2A20 | offset to table[39]
+ +0x0FCC | B4 1A 00 00 | UOffset32 | 0x00001AB4 (6836) Loc: +0x2A80 | offset to table[40]
+ +0x0FD0 | A8 14 00 00 | UOffset32 | 0x000014A8 (5288) Loc: +0x2478 | offset to table[41]
+ +0x0FD4 | 24 14 00 00 | UOffset32 | 0x00001424 (5156) Loc: +0x23F8 | offset to table[42]
+ +0x0FD8 | C8 13 00 00 | UOffset32 | 0x000013C8 (5064) Loc: +0x23A0 | offset to table[43]
+ +0x0FDC | B8 19 00 00 | UOffset32 | 0x000019B8 (6584) Loc: +0x2994 | offset to table[44]
+ +0x0FE0 | 78 17 00 00 | UOffset32 | 0x00001778 (6008) Loc: +0x2758 | offset to table[45]
+ +0x0FE4 | 94 18 00 00 | UOffset32 | 0x00001894 (6292) Loc: +0x2878 | offset to table[46]
+ +0x0FE8 | F0 15 00 00 | UOffset32 | 0x000015F0 (5616) Loc: +0x25D8 | offset to table[47]
+ +0x0FEC | 1C 19 00 00 | UOffset32 | 0x0000191C (6428) Loc: +0x2908 | offset to table[48]
+ +0x0FF0 | 7C 16 00 00 | UOffset32 | 0x0000167C (5756) Loc: +0x266C | offset to table[49]
+ +0x0FF4 | F4 17 00 00 | UOffset32 | 0x000017F4 (6132) Loc: +0x27E8 | offset to table[50]
+ +0x0FF8 | 4C 15 00 00 | UOffset32 | 0x0000154C (5452) Loc: +0x2544 | offset to table[51]
+ +0x0FFC | E8 1A 00 00 | UOffset32 | 0x00001AE8 (6888) Loc: +0x2AE4 | offset to table[52]
+ +0x1000 | D0 05 00 00 | UOffset32 | 0x000005D0 (1488) Loc: +0x15D0 | offset to table[53]
+ +0x1004 | 58 0B 00 00 | UOffset32 | 0x00000B58 (2904) Loc: +0x1B5C | offset to table[54]
+ +0x1008 | 10 11 00 00 | UOffset32 | 0x00001110 (4368) Loc: +0x2118 | offset to table[55]
+ +0x100C | F0 06 00 00 | UOffset32 | 0x000006F0 (1776) Loc: +0x16FC | offset to table[56]
+ +0x1010 | 70 11 00 00 | UOffset32 | 0x00001170 (4464) Loc: +0x2180 | offset to table[57]
+ +0x1014 | F0 08 00 00 | UOffset32 | 0x000008F0 (2288) Loc: +0x1904 | offset to table[58]
+ +0x1018 | 20 10 00 00 | UOffset32 | 0x00001020 (4128) Loc: +0x2038 | offset to table[59]
+ +0x101C | 74 0D 00 00 | UOffset32 | 0x00000D74 (3444) Loc: +0x1D90 | offset to table[60]
+ +0x1020 | 24 0E 00 00 | UOffset32 | 0x00000E24 (3620) Loc: +0x1E44 | offset to table[61]
string (reflection.Object.name):
- +0x1004 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string
- +0x1008 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal
- +0x1010 | 78 61 6D 70 6C 65 2E 4D | | xample.M
- +0x1018 | 6F 6E 73 74 65 72 | | onster
- +0x101E | 00 | char | 0x00 (0) | string terminator
+ +0x1024 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string
+ +0x1028 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal
+ +0x1030 | 78 61 6D 70 6C 65 2E 4D | | xample.M
+ +0x1038 | 6F 6E 73 74 65 72 | | onster
+ +0x103E | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x1020 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x12BE | offset to vtable
- +0x1024 | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort)
- +0x1026 | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort)
- +0x1028 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x107C | offset to field `name` (string)
- +0x102C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1068 | offset to field `type` (table)
- +0x1030 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1044 | offset to field `attributes` (vector)
- +0x1034 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1040 | offset to field `documentation` (vector)
- +0x1038 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long)
+ +0x1040 | C2 FD FF FF | SOffset32 | 0xFFFFFDC2 (-574) Loc: +0x127E | offset to vtable
+ +0x1044 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort)
+ +0x1046 | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort)
+ +0x1048 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1098 | offset to field `name` (string)
+ +0x104C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1088 | offset to field `type` (table)
+ +0x1050 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1064 | offset to field `attributes` (vector)
+ +0x1054 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1060 | offset to field `documentation` (vector)
+ +0x1058 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double)
vector (reflection.Field.documentation):
- +0x1040 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1060 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1044 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1048 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x104C | offset to table[0]
+ +0x1064 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1068 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x106C | offset to table[0]
table (reflection.KeyValue):
- +0x104C | E8 DA FF FF | SOffset32 | 0xFFFFDAE8 (-9496) Loc: +0x3564 | offset to vtable
- +0x1050 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1060 | offset to field `key` (string)
- +0x1054 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1058 | offset to field `value` (string)
+ +0x106C | 50 D7 FF FF | SOffset32 | 0xFFFFD750 (-10416) Loc: +0x391C | offset to vtable
+ +0x1070 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1080 | offset to field `key` (string)
+ +0x1074 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1078 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1058 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x105C | 35 33 | char[2] | 53 | string literal
- +0x105E | 00 | char | 0x00 (0) | string terminator
+ +0x1078 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x107C | 36 31 | char[2] | 61 | string literal
+ +0x107E | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1060 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1064 | 69 64 | char[2] | id | string literal
- +0x1066 | 00 | char | 0x00 (0) | string terminator
+ +0x1080 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1084 | 69 64 | char[2] | id | string literal
+ +0x1086 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1068 | 64 DA FF FF | SOffset32 | 0xFFFFDA64 (-9628) Loc: +0x3604 | offset to vtable
- +0x106C | 00 00 00 | uint8_t[3] | ... | padding
- +0x106F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x1070 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
- +0x1074 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x1078 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1088 | EC D5 FF FF | SOffset32 | 0xFFFFD5EC (-10772) Loc: +0x3A9C | offset to vtable
+ +0x108C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x108F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte)
+ +0x1090 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x1094 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x107C | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string
- +0x1080 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal
- +0x1088 | 6D 5F 6E 6F 72 6D 61 6C | | m_normal
- +0x1090 | 5F 64 65 66 61 75 6C 74 | | _default
- +0x1098 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1099 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1098 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
+ +0x109C | 64 6F 75 62 6C 65 5F 69 | char[18] | double_i | string literal
+ +0x10A4 | 6E 66 5F 64 65 66 61 75 | | nf_defau
+ +0x10AC | 6C 74 | | lt
+ +0x10AE | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x109C | 62 E6 FF FF | SOffset32 | 0xFFFFE662 (-6558) Loc: +0x2A3A | offset to vtable
- +0x10A0 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort)
- +0x10A2 | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort)
- +0x10A4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x10F0 | offset to field `name` (string)
- +0x10A8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x10DC | offset to field `type` (table)
- +0x10AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x10B8 | offset to field `attributes` (vector)
- +0x10B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10B4 | offset to field `documentation` (vector)
+ +0x10B0 | 52 EC FF FF | SOffset32 | 0xFFFFEC52 (-5038) Loc: +0x245E | offset to vtable
+ +0x10B4 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort)
+ +0x10B6 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort)
+ +0x10B8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1108 | offset to field `name` (string)
+ +0x10BC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x10FC | offset to field `type` (table)
+ +0x10C0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x10D8 | offset to field `attributes` (vector)
+ +0x10C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10D4 | offset to field `documentation` (vector)
+ +0x10C8 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double)
+ +0x10D0 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x10B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x10D4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x10B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x10BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10C0 | offset to table[0]
+ +0x10D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x10DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10E0 | offset to table[0]
table (reflection.KeyValue):
- +0x10C0 | 5C DB FF FF | SOffset32 | 0xFFFFDB5C (-9380) Loc: +0x3564 | offset to vtable
- +0x10C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10D4 | offset to field `key` (string)
- +0x10C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10CC | offset to field `value` (string)
+ +0x10E0 | C4 D7 FF FF | SOffset32 | 0xFFFFD7C4 (-10300) Loc: +0x391C | offset to vtable
+ +0x10E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10F4 | offset to field `key` (string)
+ +0x10E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10EC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x10CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x10D0 | 35 32 | char[2] | 52 | string literal
- +0x10D2 | 00 | char | 0x00 (0) | string terminator
+ +0x10EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x10F0 | 36 30 | char[2] | 60 | string literal
+ +0x10F2 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x10D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x10D8 | 69 64 | char[2] | id | string literal
- +0x10DA | 00 | char | 0x00 (0) | string terminator
+ +0x10F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x10F8 | 69 64 | char[2] | id | string literal
+ +0x10FA | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x10DC | D8 DA FF FF | SOffset32 | 0xFFFFDAD8 (-9512) Loc: +0x3604 | offset to vtable
- +0x10E0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x10E3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x10E4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
- +0x10E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x10EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x10FC | A8 D3 FF FF | SOffset32 | 0xFFFFD3A8 (-11352) Loc: +0x3D54 | offset to vtable
+ +0x1100 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1103 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x1104 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x10F0 | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string
- +0x10F4 | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal
- +0x10FC | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en
- +0x1104 | 75 6D 5F 64 65 66 61 75 | | um_defau
- +0x110C | 6C 74 | | lt
- +0x110E | 00 | char | 0x00 (0) | string terminator
+ +0x1108 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string
+ +0x110C | 6E 65 67 61 74 69 76 65 | char[25] | negative | string literal
+ +0x1114 | 5F 69 6E 66 69 6E 69 74 | | _infinit
+ +0x111C | 79 5F 64 65 66 61 75 6C | | y_defaul
+ +0x1124 | 74 | | t
+ +0x1125 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1126 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1110 | EC E5 FF FF | SOffset32 | 0xFFFFE5EC (-6676) Loc: +0x2B24 | offset to vtable
- +0x1114 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1117 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1118 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort)
- +0x111A | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort)
- +0x111C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x1190 | offset to field `name` (string)
- +0x1120 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1180 | offset to field `type` (table)
- +0x1124 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1130 | offset to field `attributes` (vector)
- +0x1128 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x112C | offset to field `documentation` (vector)
+ +0x1128 | AA FE FF FF | SOffset32 | 0xFFFFFEAA (-342) Loc: +0x127E | offset to vtable
+ +0x112C | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort)
+ +0x112E | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort)
+ +0x1130 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x117C | offset to field `name` (string)
+ +0x1134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1170 | offset to field `type` (table)
+ +0x1138 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x114C | offset to field `attributes` (vector)
+ +0x113C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1148 | offset to field `documentation` (vector)
+ +0x1140 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double)
vector (reflection.Field.documentation):
- +0x112C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1148 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1130 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x1134 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x1164 | offset to table[0]
- +0x1138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x113C | offset to table[1]
+ +0x114C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1154 | offset to table[0]
table (reflection.KeyValue):
- +0x113C | D8 DB FF FF | SOffset32 | 0xFFFFDBD8 (-9256) Loc: +0x3564 | offset to vtable
- +0x1140 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1150 | offset to field `key` (string)
- +0x1144 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1148 | offset to field `value` (string)
+ +0x1154 | 38 D8 FF FF | SOffset32 | 0xFFFFD838 (-10184) Loc: +0x391C | offset to vtable
+ +0x1158 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1168 | offset to field `key` (string)
+ +0x115C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1160 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1148 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x114C | 30 | char[1] | 0 | string literal
- +0x114D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x114E | 00 00 | uint8_t[2] | .. | padding
+ +0x1160 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1164 | 35 39 | char[2] | 59 | string literal
+ +0x1166 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1150 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string
- +0x1154 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal
- +0x115C | 6E 6C 69 6E 65 | | nline
- +0x1161 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1162 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.KeyValue):
- +0x1164 | 00 DC FF FF | SOffset32 | 0xFFFFDC00 (-9216) Loc: +0x3564 | offset to vtable
- +0x1168 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1178 | offset to field `key` (string)
- +0x116C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1170 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1170 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1174 | 35 31 | char[2] | 51 | string literal
- +0x1176 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x1178 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x117C | 69 64 | char[2] | id | string literal
- +0x117E | 00 | char | 0x00 (0) | string terminator
+ +0x1168 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x116C | 69 64 | char[2] | id | string literal
+ +0x116E | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1180 | C8 D8 FF FF | SOffset32 | 0xFFFFD8C8 (-10040) Loc: +0x38B8 | offset to vtable
- +0x1184 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1187 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x1188 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
- +0x118C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1170 | 1C D4 FF FF | SOffset32 | 0xFFFFD41C (-11236) Loc: +0x3D54 | offset to vtable
+ +0x1174 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1177 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x1178 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1190 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string
- +0x1194 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal
- +0x119C | 6E 6C 69 6E 65 | | nline
- +0x11A1 | 00 | char | 0x00 (0) | string terminator
+ +0x117C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string
+ +0x1180 | 6E 65 67 61 74 69 76 65 | char[20] | negative | string literal
+ +0x1188 | 5F 69 6E 66 5F 64 65 66 | | _inf_def
+ +0x1190 | 61 75 6C 74 | | ault
+ +0x1194 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x11A2 | 00 00 | uint8_t[2] | .. | padding
+ +0x1195 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x11A4 | 80 E6 FF FF | SOffset32 | 0xFFFFE680 (-6528) Loc: +0x2B24 | offset to vtable
- +0x11A8 | 00 00 00 | uint8_t[3] | ... | padding
- +0x11AB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x11AC | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort)
- +0x11AE | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort)
- +0x11B0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x11F8 | offset to field `name` (string)
- +0x11B4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x11E8 | offset to field `type` (table)
- +0x11B8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x11C4 | offset to field `attributes` (vector)
- +0x11BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11C0 | offset to field `documentation` (vector)
+ +0x1198 | 3A ED FF FF | SOffset32 | 0xFFFFED3A (-4806) Loc: +0x245E | offset to vtable
+ +0x119C | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort)
+ +0x119E | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort)
+ +0x11A0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x11F0 | offset to field `name` (string)
+ +0x11A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x11E4 | offset to field `type` (table)
+ +0x11A8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x11C0 | offset to field `attributes` (vector)
+ +0x11AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11BC | offset to field `documentation` (vector)
+ +0x11B0 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double)
+ +0x11B8 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x11C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x11BC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x11C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x11C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11CC | offset to table[0]
+ +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x11C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11C8 | offset to table[0]
table (reflection.KeyValue):
- +0x11CC | 68 DC FF FF | SOffset32 | 0xFFFFDC68 (-9112) Loc: +0x3564 | offset to vtable
- +0x11D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11E0 | offset to field `key` (string)
- +0x11D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11D8 | offset to field `value` (string)
+ +0x11C8 | AC D8 FF FF | SOffset32 | 0xFFFFD8AC (-10068) Loc: +0x391C | offset to vtable
+ +0x11CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11DC | offset to field `key` (string)
+ +0x11D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11D4 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x11D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x11DC | 35 30 | char[2] | 50 | string literal
- +0x11DE | 00 | char | 0x00 (0) | string terminator
+ +0x11D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x11D8 | 35 38 | char[2] | 58 | string literal
+ +0x11DA | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x11E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x11E4 | 69 64 | char[2] | id | string literal
- +0x11E6 | 00 | char | 0x00 (0) | string terminator
+ +0x11DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x11E0 | 69 64 | char[2] | id | string literal
+ +0x11E2 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x11E8 | 38 E8 FF FF | SOffset32 | 0xFFFFE838 (-6088) Loc: +0x29B0 | offset to vtable
- +0x11EC | 00 00 | uint8_t[2] | .. | padding
- +0x11EE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x11EF | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x11F0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
- +0x11F4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+ +0x11E4 | 90 D4 FF FF | SOffset32 | 0xFFFFD490 (-11120) Loc: +0x3D54 | offset to vtable
+ +0x11E8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x11EB | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x11EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x11F8 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string
- +0x11FC | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal
- +0x1204 | 65 79 5F 73 6F 72 74 65 | | ey_sorte
- +0x120C | 64 5F 74 61 62 6C 65 73 | | d_tables
- +0x1214 | 00 | char | 0x00 (0) | string terminator
+ +0x11F0 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string
+ +0x11F4 | 70 6F 73 69 74 69 76 65 | char[25] | positive | string literal
+ +0x11FC | 5F 69 6E 66 69 6E 69 74 | | _infinit
+ +0x1204 | 79 5F 64 65 66 61 75 6C | | y_defaul
+ +0x120C | 74 | | t
+ +0x120D | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1215 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x120E | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1218 | F4 E6 FF FF | SOffset32 | 0xFFFFE6F4 (-6412) Loc: +0x2B24 | offset to vtable
- +0x121C | 00 00 00 | uint8_t[3] | ... | padding
- +0x121F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1220 | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort)
- +0x1222 | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort)
- +0x1224 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x129C | offset to field `name` (string)
- +0x1228 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1290 | offset to field `type` (table)
- +0x122C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1238 | offset to field `attributes` (vector)
- +0x1230 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1234 | offset to field `documentation` (vector)
+ +0x1210 | B2 ED FF FF | SOffset32 | 0xFFFFEDB2 (-4686) Loc: +0x245E | offset to vtable
+ +0x1214 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort)
+ +0x1216 | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort)
+ +0x1218 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1268 | offset to field `name` (string)
+ +0x121C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x125C | offset to field `type` (table)
+ +0x1220 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1238 | offset to field `attributes` (vector)
+ +0x1224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1234 | offset to field `documentation` (vector)
+ +0x1228 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double)
+ +0x1230 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
+0x1234 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1238 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x123C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1274 | offset to table[0]
- +0x1240 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1244 | offset to table[1]
+ +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x123C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1240 | offset to table[0]
table (reflection.KeyValue):
- +0x1244 | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x3564 | offset to vtable
- +0x1248 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x125C | offset to field `key` (string)
- +0x124C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1250 | offset to field `value` (string)
+ +0x1240 | 24 D9 FF FF | SOffset32 | 0xFFFFD924 (-9948) Loc: +0x391C | offset to vtable
+ +0x1244 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1254 | offset to field `key` (string)
+ +0x1248 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x124C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1250 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x1254 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal
- +0x125B | 00 | char | 0x00 (0) | string terminator
+ +0x124C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1250 | 35 37 | char[2] | 57 | string literal
+ +0x1252 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x125C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x1260 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal
- +0x1268 | 6C 61 74 62 75 66 66 65 | | latbuffe
- +0x1270 | 72 | | r
- +0x1271 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1272 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.KeyValue):
- +0x1274 | 10 DD FF FF | SOffset32 | 0xFFFFDD10 (-8944) Loc: +0x3564 | offset to vtable
- +0x1278 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1288 | offset to field `key` (string)
- +0x127C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1280 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1280 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1284 | 34 39 | char[2] | 49 | string literal
- +0x1286 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x1288 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x128C | 69 64 | char[2] | id | string literal
- +0x128E | 00 | char | 0x00 (0) | string terminator
+ +0x1254 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1258 | 69 64 | char[2] | id | string literal
+ +0x125A | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1290 | 0C E7 FF FF | SOffset32 | 0xFFFFE70C (-6388) Loc: +0x2B84 | offset to vtable
- +0x1294 | 00 00 | uint8_t[2] | .. | padding
- +0x1296 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1297 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
- +0x1298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x125C | 08 D5 FF FF | SOffset32 | 0xFFFFD508 (-11000) Loc: +0x3D54 | offset to vtable
+ +0x1260 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1263 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x1264 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x129C | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
- +0x12A0 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal
- +0x12A8 | 69 72 65 64 6E 65 73 74 | | irednest
- +0x12B0 | 65 64 66 6C 61 74 62 75 | | edflatbu
- +0x12B8 | 66 66 65 72 | | ffer
- +0x12BC | 00 | char | 0x00 (0) | string terminator
+ +0x1268 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x126C | 69 6E 66 69 6E 69 74 79 | char[16] | infinity | string literal
+ +0x1274 | 5F 64 65 66 61 75 6C 74 | | _default
+ +0x127C | 00 | char | 0x00 (0) | string terminator
vtable (reflection.Field):
- +0x12BE | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x12C0 | 20 00 | uint16_t | 0x0020 (32) | size of referring table
- +0x12C2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x12C4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x12C6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
- +0x12C8 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x12CA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4)
- +0x12CC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x12CE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x12D0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x12D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x12D4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x12D6 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x127E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x1280 | 20 00 | uint16_t | 0x0020 (32) | size of referring table
+ +0x1282 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x1284 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x1286 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
+ +0x1288 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x128A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x128C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5)
+ +0x128E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x1290 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x1292 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x1294 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x1296 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x12D8 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x12BE | offset to vtable
- +0x12DC | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort)
- +0x12DE | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort)
- +0x12E0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x1334 | offset to field `name` (string)
- +0x12E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1320 | offset to field `type` (table)
- +0x12E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x12FC | offset to field `attributes` (vector)
- +0x12EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x12F8 | offset to field `documentation` (vector)
- +0x12F0 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long)
+ +0x1298 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x127E | offset to vtable
+ +0x129C | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort)
+ +0x129E | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort)
+ +0x12A0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x12EC | offset to field `name` (string)
+ +0x12A4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x12E0 | offset to field `type` (table)
+ +0x12A8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x12BC | offset to field `attributes` (vector)
+ +0x12AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x12B8 | offset to field `documentation` (vector)
+ +0x12B0 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double)
vector (reflection.Field.documentation):
- +0x12F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x12B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x12FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1300 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1304 | offset to table[0]
+ +0x12BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x12C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12C4 | offset to table[0]
table (reflection.KeyValue):
- +0x1304 | A0 DD FF FF | SOffset32 | 0xFFFFDDA0 (-8800) Loc: +0x3564 | offset to vtable
- +0x1308 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1318 | offset to field `key` (string)
- +0x130C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1310 | offset to field `value` (string)
+ +0x12C4 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: +0x391C | offset to vtable
+ +0x12C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x12D8 | offset to field `key` (string)
+ +0x12CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12D0 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1310 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1314 | 34 38 | char[2] | 48 | string literal
- +0x1316 | 00 | char | 0x00 (0) | string terminator
+ +0x12D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x12D4 | 35 36 | char[2] | 56 | string literal
+ +0x12D6 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1318 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x131C | 69 64 | char[2] | id | string literal
- +0x131E | 00 | char | 0x00 (0) | string terminator
+ +0x12D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x12DC | 69 64 | char[2] | id | string literal
+ +0x12DE | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1320 | 1C DD FF FF | SOffset32 | 0xFFFFDD1C (-8932) Loc: +0x3604 | offset to vtable
- +0x1324 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1327 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte)
- +0x1328 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int)
- +0x132C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x1330 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x12E0 | 8C D5 FF FF | SOffset32 | 0xFFFFD58C (-10868) Loc: +0x3D54 | offset to vtable
+ +0x12E4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x12E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x12E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1334 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x1338 | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal
- +0x1340 | 6E 75 6D | | num
- +0x1343 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Field):
- +0x1344 | 20 E8 FF FF | SOffset32 | 0xFFFFE820 (-6112) Loc: +0x2B24 | offset to vtable
- +0x1348 | 00 00 00 | uint8_t[3] | ... | padding
- +0x134B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x134C | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort)
- +0x134E | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort)
- +0x1350 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1398 | offset to field `name` (string)
- +0x1354 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1388 | offset to field `type` (table)
- +0x1358 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1364 | offset to field `attributes` (vector)
- +0x135C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1360 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x1360 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x1364 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x136C | offset to table[0]
-
-table (reflection.KeyValue):
- +0x136C | 08 DE FF FF | SOffset32 | 0xFFFFDE08 (-8696) Loc: +0x3564 | offset to vtable
- +0x1370 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1380 | offset to field `key` (string)
- +0x1374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1378 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1378 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x137C | 34 37 | char[2] | 47 | string literal
- +0x137E | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x1380 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1384 | 69 64 | char[2] | id | string literal
- +0x1386 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x1388 | D8 E9 FF FF | SOffset32 | 0xFFFFE9D8 (-5672) Loc: +0x29B0 | offset to vtable
- +0x138C | 00 00 | uint8_t[2] | .. | padding
- +0x138E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x138F | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
- +0x1390 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
- +0x1394 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x1398 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string
- +0x139C | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal
- +0x13A4 | 66 5F 65 6E 75 6D 73 | | f_enums
- +0x13AB | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Field):
- +0x13AC | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x2B24 | offset to vtable
- +0x13B0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x13B3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x13B4 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort)
- +0x13B6 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort)
- +0x13B8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1400 | offset to field `name` (string)
- +0x13BC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x13F0 | offset to field `type` (table)
- +0x13C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x13CC | offset to field `attributes` (vector)
- +0x13C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13C8 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x13C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x13CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x13D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13D4 | offset to table[0]
-
-table (reflection.KeyValue):
- +0x13D4 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x3564 | offset to vtable
- +0x13D8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13E8 | offset to field `key` (string)
- +0x13DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13E0 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x13E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x13E4 | 34 36 | char[2] | 46 | string literal
- +0x13E6 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x13E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x13EC | 69 64 | char[2] | id | string literal
- +0x13EE | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x13F0 | 38 DB FF FF | SOffset32 | 0xFFFFDB38 (-9416) Loc: +0x38B8 | offset to vtable
- +0x13F4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x13F7 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte)
- +0x13F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
- +0x13FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x1400 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string
- +0x1404 | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal
- +0x140C | 67 75 6F 75 73 | | guous
- +0x1411 | 00 | char | 0x00 (0) | string terminator
+ +0x12EC | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string
+ +0x12F0 | 70 6F 73 69 74 69 76 65 | char[20] | positive | string literal
+ +0x12F8 | 5F 69 6E 66 5F 64 65 66 | | _inf_def
+ +0x1300 | 61 75 6C 74 | | ault
+ +0x1304 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1412 | 00 00 | uint8_t[2] | .. | padding
+ +0x1305 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x1414 | DA E9 FF FF | SOffset32 | 0xFFFFE9DA (-5670) Loc: +0x2A3A | offset to vtable
- +0x1418 | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort)
- +0x141A | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort)
- +0x141C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1468 | offset to field `name` (string)
- +0x1420 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1454 | offset to field `type` (table)
- +0x1424 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1430 | offset to field `attributes` (vector)
- +0x1428 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x142C | offset to field `documentation` (vector)
+ +0x1308 | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x245E | offset to vtable
+ +0x130C | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort)
+ +0x130E | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort)
+ +0x1310 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1360 | offset to field `name` (string)
+ +0x1314 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1354 | offset to field `type` (table)
+ +0x1318 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1330 | offset to field `attributes` (vector)
+ +0x131C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x132C | offset to field `documentation` (vector)
+ +0x1320 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double)
+ +0x1328 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x142C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x132C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1430 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1434 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1438 | offset to table[0]
+ +0x1330 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1334 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1338 | offset to table[0]
table (reflection.KeyValue):
- +0x1438 | D4 DE FF FF | SOffset32 | 0xFFFFDED4 (-8492) Loc: +0x3564 | offset to vtable
- +0x143C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x144C | offset to field `key` (string)
- +0x1440 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1444 | offset to field `value` (string)
+ +0x1338 | 1C DA FF FF | SOffset32 | 0xFFFFDA1C (-9700) Loc: +0x391C | offset to vtable
+ +0x133C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x134C | offset to field `key` (string)
+ +0x1340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1344 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1444 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1448 | 34 35 | char[2] | 45 | string literal
- +0x144A | 00 | char | 0x00 (0) | string terminator
+ +0x1344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1348 | 35 35 | char[2] | 55 | string literal
+ +0x134A | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x144C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1450 | 69 64 | char[2] | id | string literal
- +0x1452 | 00 | char | 0x00 (0) | string terminator
+ +0x134C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1350 | 69 64 | char[2] | id | string literal
+ +0x1352 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1454 | 50 DE FF FF | SOffset32 | 0xFFFFDE50 (-8624) Loc: +0x3604 | offset to vtable
- +0x1458 | 00 00 00 | uint8_t[3] | ... | padding
- +0x145B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
- +0x145C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
- +0x1460 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x1464 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1354 | 00 D6 FF FF | SOffset32 | 0xFFFFD600 (-10752) Loc: +0x3D54 | offset to vtable
+ +0x1358 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x135B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x135C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1468 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
- +0x146C | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal
- +0x1474 | 67 75 6F 75 73 5F 74 79 | | guous_ty
- +0x147C | 70 65 | | pe
- +0x147E | 00 | char | 0x00 (0) | string terminator
+ +0x1360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1364 | 69 6E 66 5F 64 65 66 61 | char[11] | inf_defa | string literal
+ +0x136C | 75 6C 74 | | ult
+ +0x136F | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x1480 | 5C E9 FF FF | SOffset32 | 0xFFFFE95C (-5796) Loc: +0x2B24 | offset to vtable
- +0x1484 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1487 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1488 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort)
- +0x148A | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort)
- +0x148C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x14D4 | offset to field `name` (string)
- +0x1490 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x14C4 | offset to field `type` (table)
- +0x1494 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14A0 | offset to field `attributes` (vector)
- +0x1498 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x149C | offset to field `documentation` (vector)
+ +0x1370 | 12 EF FF FF | SOffset32 | 0xFFFFEF12 (-4334) Loc: +0x245E | offset to vtable
+ +0x1374 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort)
+ +0x1376 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort)
+ +0x1378 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x13C8 | offset to field `name` (string)
+ +0x137C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x13BC | offset to field `type` (table)
+ +0x1380 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1398 | offset to field `attributes` (vector)
+ +0x1384 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1394 | offset to field `documentation` (vector)
+ +0x1388 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double)
+ +0x1390 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x149C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1394 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x14A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x14A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14A8 | offset to table[0]
+ +0x1398 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x139C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13A0 | offset to table[0]
table (reflection.KeyValue):
- +0x14A8 | 44 DF FF FF | SOffset32 | 0xFFFFDF44 (-8380) Loc: +0x3564 | offset to vtable
- +0x14AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x14BC | offset to field `key` (string)
- +0x14B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14B4 | offset to field `value` (string)
+ +0x13A0 | 84 DA FF FF | SOffset32 | 0xFFFFDA84 (-9596) Loc: +0x391C | offset to vtable
+ +0x13A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13B4 | offset to field `key` (string)
+ +0x13A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13AC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x14B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x14B8 | 34 34 | char[2] | 44 | string literal
- +0x14BA | 00 | char | 0x00 (0) | string terminator
+ +0x13AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x13B0 | 35 34 | char[2] | 54 | string literal
+ +0x13B2 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x14BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x14C0 | 69 64 | char[2] | id | string literal
- +0x14C2 | 00 | char | 0x00 (0) | string terminator
+ +0x13B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x13B8 | 69 64 | char[2] | id | string literal
+ +0x13BA | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x14C4 | 0C DC FF FF | SOffset32 | 0xFFFFDC0C (-9204) Loc: +0x38B8 | offset to vtable
- +0x14C8 | 00 00 00 | uint8_t[3] | ... | padding
- +0x14CB | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte)
- +0x14CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
- +0x14D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x13BC | 68 D6 FF FF | SOffset32 | 0xFFFFD668 (-10648) Loc: +0x3D54 | offset to vtable
+ +0x13C0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x13C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x13C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x14D4 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string
- +0x14D8 | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal
- +0x14E0 | 75 65 | | ue
- +0x14E2 | 00 | char | 0x00 (0) | string terminator
+ +0x13C8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x13CC | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal
+ +0x13D4 | 75 6C 74 | | ult
+ +0x13D7 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x14E4 | AA EA FF FF | SOffset32 | 0xFFFFEAAA (-5462) Loc: +0x2A3A | offset to vtable
- +0x14E8 | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort)
- +0x14EA | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort)
- +0x14EC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1538 | offset to field `name` (string)
- +0x14F0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1524 | offset to field `type` (table)
- +0x14F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1500 | offset to field `attributes` (vector)
- +0x14F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14FC | offset to field `documentation` (vector)
+ +0x13D8 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x1676 | offset to vtable
+ +0x13DC | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort)
+ +0x13DE | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort)
+ +0x13E0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x1434 | offset to field `name` (string)
+ +0x13E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1420 | offset to field `type` (table)
+ +0x13E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x13FC | offset to field `attributes` (vector)
+ +0x13EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x13F8 | offset to field `documentation` (vector)
+ +0x13F0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long)
vector (reflection.Field.documentation):
- +0x14FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x13F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1500 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1504 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1508 | offset to table[0]
+ +0x13FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1400 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1404 | offset to table[0]
table (reflection.KeyValue):
- +0x1508 | A4 DF FF FF | SOffset32 | 0xFFFFDFA4 (-8284) Loc: +0x3564 | offset to vtable
- +0x150C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x151C | offset to field `key` (string)
- +0x1510 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1514 | offset to field `value` (string)
+ +0x1404 | E8 DA FF FF | SOffset32 | 0xFFFFDAE8 (-9496) Loc: +0x391C | offset to vtable
+ +0x1408 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1418 | offset to field `key` (string)
+ +0x140C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1410 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1514 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1518 | 34 33 | char[2] | 43 | string literal
- +0x151A | 00 | char | 0x00 (0) | string terminator
+ +0x1410 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1414 | 35 33 | char[2] | 53 | string literal
+ +0x1416 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x151C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1520 | 69 64 | char[2] | id | string literal
- +0x1522 | 00 | char | 0x00 (0) | string terminator
+ +0x1418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x141C | 69 64 | char[2] | id | string literal
+ +0x141E | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1524 | 20 DF FF FF | SOffset32 | 0xFFFFDF20 (-8416) Loc: +0x3604 | offset to vtable
- +0x1528 | 00 00 00 | uint8_t[3] | ... | padding
- +0x152B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
- +0x152C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
- +0x1530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x1534 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1420 | 64 DA FF FF | SOffset32 | 0xFFFFDA64 (-9628) Loc: +0x39BC | offset to vtable
+ +0x1424 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1427 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x1428 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
+ +0x142C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x1430 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1538 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string
- +0x153C | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal
- +0x1544 | 75 65 5F 74 79 70 65 | | ue_type
- +0x154B | 00 | char | 0x00 (0) | string terminator
+ +0x1434 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string
+ +0x1438 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal
+ +0x1440 | 6D 5F 6E 6F 72 6D 61 6C | | m_normal
+ +0x1448 | 5F 64 65 66 61 75 6C 74 | | _default
+ +0x1450 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1451 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x154C | 28 EA FF FF | SOffset32 | 0xFFFFEA28 (-5592) Loc: +0x2B24 | offset to vtable
- +0x1550 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1553 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1554 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort)
- +0x1556 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort)
- +0x1558 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1658 | offset to field `name` (string)
- +0x155C | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x164C | offset to field `type` (table)
- +0x1560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x156C | offset to field `attributes` (vector)
- +0x1564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1568 | offset to field `documentation` (vector)
+ +0x1454 | 62 E6 FF FF | SOffset32 | 0xFFFFE662 (-6558) Loc: +0x2DF2 | offset to vtable
+ +0x1458 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort)
+ +0x145A | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort)
+ +0x145C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x14A8 | offset to field `name` (string)
+ +0x1460 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1494 | offset to field `type` (table)
+ +0x1464 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1470 | offset to field `attributes` (vector)
+ +0x1468 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x146C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x146C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x156C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items)
- +0x1570 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x1620 | offset to table[0]
- +0x1574 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x15F4 | offset to table[1]
- +0x1578 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x15C8 | offset to table[2]
- +0x157C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x15A0 | offset to table[3]
- +0x1580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1584 | offset to table[4]
+ +0x1470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1474 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1478 | offset to table[0]
table (reflection.KeyValue):
- +0x1584 | 20 E0 FF FF | SOffset32 | 0xFFFFE020 (-8160) Loc: +0x3564 | offset to vtable
+ +0x1478 | 5C DB FF FF | SOffset32 | 0xFFFFDB5C (-9380) Loc: +0x391C | offset to vtable
+ +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x148C | offset to field `key` (string)
+ +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1484 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1488 | 35 32 | char[2] | 52 | string literal
+ +0x148A | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x148C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1490 | 69 64 | char[2] | id | string literal
+ +0x1492 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x1494 | D8 DA FF FF | SOffset32 | 0xFFFFDAD8 (-9512) Loc: +0x39BC | offset to vtable
+ +0x1498 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x149B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x149C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
+ +0x14A0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x14A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x14A8 | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string
+ +0x14AC | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal
+ +0x14B4 | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en
+ +0x14BC | 75 6D 5F 64 65 66 61 75 | | um_defau
+ +0x14C4 | 6C 74 | | lt
+ +0x14C6 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x14C8 | EC E5 FF FF | SOffset32 | 0xFFFFE5EC (-6676) Loc: +0x2EDC | offset to vtable
+ +0x14CC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x14CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x14D0 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort)
+ +0x14D2 | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort)
+ +0x14D4 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x1548 | offset to field `name` (string)
+ +0x14D8 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1538 | offset to field `type` (table)
+ +0x14DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14E8 | offset to field `attributes` (vector)
+ +0x14E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14E4 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x14E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x14E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x14EC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x151C | offset to table[0]
+ +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14F4 | offset to table[1]
+
+table (reflection.KeyValue):
+ +0x14F4 | D8 DB FF FF | SOffset32 | 0xFFFFDBD8 (-9256) Loc: +0x391C | offset to vtable
+ +0x14F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1508 | offset to field `key` (string)
+ +0x14FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1500 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1500 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x1504 | 30 | char[1] | 0 | string literal
+ +0x1505 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1506 | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x1508 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string
+ +0x150C | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal
+ +0x1514 | 6E 6C 69 6E 65 | | nline
+ +0x1519 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x151A | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.KeyValue):
+ +0x151C | 00 DC FF FF | SOffset32 | 0xFFFFDC00 (-9216) Loc: +0x391C | offset to vtable
+ +0x1520 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1530 | offset to field `key` (string)
+ +0x1524 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1528 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1528 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x152C | 35 31 | char[2] | 51 | string literal
+ +0x152E | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1530 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1534 | 69 64 | char[2] | id | string literal
+ +0x1536 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x1538 | C8 D8 FF FF | SOffset32 | 0xFFFFD8C8 (-10040) Loc: +0x3C70 | offset to vtable
+ +0x153C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x153F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x1540 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
+ +0x1544 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x1548 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string
+ +0x154C | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal
+ +0x1554 | 6E 6C 69 6E 65 | | nline
+ +0x1559 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x155A | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x155C | 80 E6 FF FF | SOffset32 | 0xFFFFE680 (-6528) Loc: +0x2EDC | offset to vtable
+ +0x1560 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1563 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x1564 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort)
+ +0x1566 | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort)
+ +0x1568 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x15B0 | offset to field `name` (string)
+ +0x156C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x15A0 | offset to field `type` (table)
+ +0x1570 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x157C | offset to field `attributes` (vector)
+ +0x1574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1578 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x1578 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x157C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1584 | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x1584 | 68 DC FF FF | SOffset32 | 0xFFFFDC68 (-9112) Loc: +0x391C | offset to vtable
+0x1588 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1598 | offset to field `key` (string)
+0x158C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1590 | offset to field `value` (string)
string (reflection.KeyValue.value):
+0x1590 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1594 | 34 32 | char[2] | 42 | string literal
+ +0x1594 | 35 30 | char[2] | 50 | string literal
+0x1596 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
@@ -2303,1657 +2285,1621 @@
+0x159C | 69 64 | char[2] | id | string literal
+0x159E | 00 | char | 0x00 (0) | string terminator
-table (reflection.KeyValue):
- +0x15A0 | 3C E0 FF FF | SOffset32 | 0xFFFFE03C (-8132) Loc: +0x3564 | offset to vtable
- +0x15A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x15BC | offset to field `key` (string)
- +0x15A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15AC | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x15AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x15B0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x15B8 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x15B9 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x15BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x15C0 | 68 61 73 68 | char[4] | hash | string literal
- +0x15C4 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x15C5 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x15C8 | 64 E0 FF FF | SOffset32 | 0xFFFFE064 (-8092) Loc: +0x3564 | offset to vtable
- +0x15CC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x15E4 | offset to field `key` (string)
- +0x15D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15D4 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x15D4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x15D8 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
- +0x15E0 | 6C 65 54 | | leT
- +0x15E3 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x15E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x15E8 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
- +0x15F0 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x15F1 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x15F4 | 90 E0 FF FF | SOffset32 | 0xFFFFE090 (-8048) Loc: +0x3564 | offset to vtable
- +0x15F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1608 | offset to field `key` (string)
- +0x15FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1600 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1600 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string
- +0x1604 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1605 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x1608 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x160C | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal
- +0x1614 | 74 79 70 65 5F 67 65 74 | | type_get
- +0x161C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x161D | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x1620 | BC E0 FF FF | SOffset32 | 0xFFFFE0BC (-8004) Loc: +0x3564 | offset to vtable
- +0x1624 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1638 | offset to field `key` (string)
- +0x1628 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x162C | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x162C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x1630 | 6E 61 6B 65 64 | char[5] | naked | string literal
- +0x1635 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1636 | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x1638 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x163C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x1644 | 74 79 70 65 | | type
- +0x1648 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1649 | 00 00 00 | uint8_t[3] | ... | padding
-
table (reflection.Type):
- +0x164C | C8 EA FF FF | SOffset32 | 0xFFFFEAC8 (-5432) Loc: +0x2B84 | offset to vtable
- +0x1650 | 00 00 | uint8_t[2] | .. | padding
- +0x1652 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1653 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte)
- +0x1654 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
+ +0x15A0 | 38 E8 FF FF | SOffset32 | 0xFFFFE838 (-6088) Loc: +0x2D68 | offset to vtable
+ +0x15A4 | 00 00 | uint8_t[2] | .. | padding
+ +0x15A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x15A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x15A8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
+ +0x15AC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1658 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string
- +0x165C | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal
- +0x1664 | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow
- +0x166C | 6E 69 6E 67 5F 72 65 66 | | ning_ref
- +0x1674 | 65 72 65 6E 63 65 73 | | erences
- +0x167B | 00 | char | 0x00 (0) | string terminator
+ +0x15B0 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string
+ +0x15B4 | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal
+ +0x15BC | 65 79 5F 73 6F 72 74 65 | | ey_sorte
+ +0x15C4 | 64 5F 74 61 62 6C 65 73 | | d_tables
+ +0x15CC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x15CD | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x167C | 42 EC FF FF | SOffset32 | 0xFFFFEC42 (-5054) Loc: +0x2A3A | offset to vtable
- +0x1680 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort)
- +0x1682 | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort)
- +0x1684 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x1788 | offset to field `name` (string)
- +0x1688 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1778 | offset to field `type` (table)
- +0x168C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1698 | offset to field `attributes` (vector)
- +0x1690 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1694 | offset to field `documentation` (vector)
+ +0x15D0 | F4 E6 FF FF | SOffset32 | 0xFFFFE6F4 (-6412) Loc: +0x2EDC | offset to vtable
+ +0x15D4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x15D7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x15D8 | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort)
+ +0x15DA | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort)
+ +0x15DC | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x1654 | offset to field `name` (string)
+ +0x15E0 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1648 | offset to field `type` (table)
+ +0x15E4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x15F0 | offset to field `attributes` (vector)
+ +0x15E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15EC | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1694 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x15EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1698 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items)
- +0x169C | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x174C | offset to table[0]
- +0x16A0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1720 | offset to table[1]
- +0x16A4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x16F4 | offset to table[2]
- +0x16A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x16CC | offset to table[3]
- +0x16AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16B0 | offset to table[4]
+ +0x15F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x15F4 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x162C | offset to table[0]
+ +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15FC | offset to table[1]
table (reflection.KeyValue):
- +0x16B0 | 4C E1 FF FF | SOffset32 | 0xFFFFE14C (-7860) Loc: +0x3564 | offset to vtable
- +0x16B4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16C4 | offset to field `key` (string)
- +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to field `value` (string)
+ +0x15FC | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x391C | offset to vtable
+ +0x1600 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1614 | offset to field `key` (string)
+ +0x1604 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1608 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x16BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x16C0 | 34 31 | char[2] | 41 | string literal
- +0x16C2 | 00 | char | 0x00 (0) | string terminator
+ +0x1608 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x160C | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal
+ +0x1613 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x16C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x16C8 | 69 64 | char[2] | id | string literal
- +0x16CA | 00 | char | 0x00 (0) | string terminator
+ +0x1614 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x1618 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal
+ +0x1620 | 6C 61 74 62 75 66 66 65 | | latbuffe
+ +0x1628 | 72 | | r
+ +0x1629 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x162A | 00 00 | uint8_t[2] | .. | padding
table (reflection.KeyValue):
- +0x16CC | 68 E1 FF FF | SOffset32 | 0xFFFFE168 (-7832) Loc: +0x3564 | offset to vtable
- +0x16D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x16E8 | offset to field `key` (string)
- +0x16D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16D8 | offset to field `value` (string)
+ +0x162C | 10 DD FF FF | SOffset32 | 0xFFFFDD10 (-8944) Loc: +0x391C | offset to vtable
+ +0x1630 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1640 | offset to field `key` (string)
+ +0x1634 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1638 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x16D8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x16DC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x16E4 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x16E5 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1638 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x163C | 34 39 | char[2] | 49 | string literal
+ +0x163E | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x16E8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x16EC | 68 61 73 68 | char[4] | hash | string literal
- +0x16F0 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x16F1 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x16F4 | 90 E1 FF FF | SOffset32 | 0xFFFFE190 (-7792) Loc: +0x3564 | offset to vtable
- +0x16F8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1710 | offset to field `key` (string)
- +0x16FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1700 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1700 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x1704 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
- +0x170C | 6C 65 54 | | leT
- +0x170F | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x1710 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1714 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
- +0x171C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x171D | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x1720 | BC E1 FF FF | SOffset32 | 0xFFFFE1BC (-7748) Loc: +0x3564 | offset to vtable
- +0x1724 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1734 | offset to field `key` (string)
- +0x1728 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x172C | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x172C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string
- +0x1730 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1731 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x1734 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x1738 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal
- +0x1740 | 74 79 70 65 5F 67 65 74 | | type_get
- +0x1748 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1749 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x174C | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x3564 | offset to vtable
- +0x1750 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1764 | offset to field `key` (string)
- +0x1754 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1758 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1758 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x175C | 6E 61 6B 65 64 | char[5] | naked | string literal
- +0x1761 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1762 | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x1764 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x1768 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x1770 | 74 79 70 65 | | type
- +0x1774 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1775 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1640 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1644 | 69 64 | char[2] | id | string literal
+ +0x1646 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1778 | 94 E0 FF FF | SOffset32 | 0xFFFFE094 (-8044) Loc: +0x36E4 | offset to vtable
- +0x177C | 00 00 00 | uint8_t[3] | ... | padding
- +0x177F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x1780 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x1784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1648 | 0C E7 FF FF | SOffset32 | 0xFFFFE70C (-6388) Loc: +0x2F3C | offset to vtable
+ +0x164C | 00 00 | uint8_t[2] | .. | padding
+ +0x164E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x164F | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
+ +0x1650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1788 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string
- +0x178C | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal
- +0x1794 | 6E 67 5F 72 65 66 65 72 | | ng_refer
- +0x179C | 65 6E 63 65 | | ence
- +0x17A0 | 00 | char | 0x00 (0) | string terminator
+ +0x1654 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
+ +0x1658 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal
+ +0x1660 | 69 72 65 64 6E 65 73 74 | | irednest
+ +0x1668 | 65 64 66 6C 61 74 62 75 | | edflatbu
+ +0x1670 | 66 66 65 72 | | ffer
+ +0x1674 | 00 | char | 0x00 (0) | string terminator
-padding:
- +0x17A1 | 00 00 00 | uint8_t[3] | ... | padding
+vtable (reflection.Field):
+ +0x1676 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x1678 | 20 00 | uint16_t | 0x0020 (32) | size of referring table
+ +0x167A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x167C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x167E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
+ +0x1680 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x1682 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4)
+ +0x1684 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x1686 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x1688 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x168A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x168C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x168E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x17A4 | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x2B24 | offset to vtable
- +0x17A8 | 00 00 00 | uint8_t[3] | ... | padding
- +0x17AB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x17AC | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort)
- +0x17AE | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort)
- +0x17B0 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x18C0 | offset to field `name` (string)
- +0x17B4 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x18B4 | offset to field `type` (table)
- +0x17B8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x17C4 | offset to field `attributes` (vector)
- +0x17BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17C0 | offset to field `documentation` (vector)
+ +0x1690 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x1676 | offset to vtable
+ +0x1694 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort)
+ +0x1696 | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort)
+ +0x1698 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x16EC | offset to field `name` (string)
+ +0x169C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x16D8 | offset to field `type` (table)
+ +0x16A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x16B4 | offset to field `attributes` (vector)
+ +0x16A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x16B0 | offset to field `documentation` (vector)
+ +0x16A8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long)
vector (reflection.Field.documentation):
- +0x17C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x16B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x17C4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items)
- +0x17C8 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x187C | offset to table[0]
- +0x17CC | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x184C | offset to table[1]
- +0x17D0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1820 | offset to table[2]
- +0x17D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x17F8 | offset to table[3]
- +0x17D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17DC | offset to table[4]
+ +0x16B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to table[0]
table (reflection.KeyValue):
- +0x17DC | 78 E2 FF FF | SOffset32 | 0xFFFFE278 (-7560) Loc: +0x3564 | offset to vtable
- +0x17E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17F0 | offset to field `key` (string)
- +0x17E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E8 | offset to field `value` (string)
+ +0x16BC | A0 DD FF FF | SOffset32 | 0xFFFFDDA0 (-8800) Loc: +0x391C | offset to vtable
+ +0x16C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16D0 | offset to field `key` (string)
+ +0x16C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16C8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x17E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x17EC | 34 30 | char[2] | 40 | string literal
- +0x17EE | 00 | char | 0x00 (0) | string terminator
+ +0x16C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x16CC | 34 38 | char[2] | 48 | string literal
+ +0x16CE | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x17F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x17F4 | 69 64 | char[2] | id | string literal
- +0x17F6 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x17F8 | 94 E2 FF FF | SOffset32 | 0xFFFFE294 (-7532) Loc: +0x3564 | offset to vtable
- +0x17FC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1814 | offset to field `key` (string)
- +0x1800 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1804 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1804 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1808 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x1810 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1811 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x1814 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x1818 | 68 61 73 68 | char[4] | hash | string literal
- +0x181C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x181D | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x1820 | BC E2 FF FF | SOffset32 | 0xFFFFE2BC (-7492) Loc: +0x3564 | offset to vtable
- +0x1824 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x183C | offset to field `key` (string)
- +0x1828 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x182C | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x182C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x1830 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
- +0x1838 | 6C 65 54 | | leT
- +0x183B | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x183C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1840 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
- +0x1848 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1849 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x184C | E8 E2 FF FF | SOffset32 | 0xFFFFE2E8 (-7448) Loc: +0x3564 | offset to vtable
- +0x1850 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1864 | offset to field `key` (string)
- +0x1854 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1858 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1858 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
- +0x185C | 2E 67 65 74 28 29 | char[6] | .get() | string literal
- +0x1862 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x1864 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x1868 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal
- +0x1870 | 74 79 70 65 5F 67 65 74 | | type_get
- +0x1878 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1879 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x187C | 18 E3 FF FF | SOffset32 | 0xFFFFE318 (-7400) Loc: +0x3564 | offset to vtable
- +0x1880 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x18A0 | offset to field `key` (string)
- +0x1884 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1888 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1888 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x188C | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal
- +0x1894 | 70 74 72 5F 74 79 70 65 | | ptr_type
- +0x189C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x189D | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x18A0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x18A4 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x18AC | 74 79 70 65 | | type
- +0x18B0 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x18B1 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x16D4 | 69 64 | char[2] | id | string literal
+ +0x16D6 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x18B4 | 30 ED FF FF | SOffset32 | 0xFFFFED30 (-4816) Loc: +0x2B84 | offset to vtable
- +0x18B8 | 00 00 | uint8_t[2] | .. | padding
- +0x18BA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x18BB | 0A | uint8_t | 0x0A (10) | table field `element` (Byte)
- +0x18BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
+ +0x16D8 | 1C DD FF FF | SOffset32 | 0xFFFFDD1C (-8932) Loc: +0x39BC | offset to vtable
+ +0x16DC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x16DF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte)
+ +0x16E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int)
+ +0x16E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x16E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x18C0 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string
- +0x18C4 | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal
- +0x18CC | 66 5F 63 6F 5F 6F 77 6E | | f_co_own
- +0x18D4 | 69 6E 67 5F 72 65 66 65 | | ing_refe
- +0x18DC | 72 65 6E 63 65 73 | | rences
- +0x18E2 | 00 | char | 0x00 (0) | string terminator
+ +0x16EC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x16F0 | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal
+ +0x16F8 | 6E 75 6D | | num
+ +0x16FB | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x18E4 | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x2A3A | offset to vtable
- +0x18E8 | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort)
- +0x18EA | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort)
- +0x18EC | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x19C0 | offset to field `name` (string)
- +0x18F0 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x19B0 | offset to field `type` (table)
- +0x18F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1900 | offset to field `attributes` (vector)
- +0x18F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18FC | offset to field `documentation` (vector)
+ +0x16FC | 20 E8 FF FF | SOffset32 | 0xFFFFE820 (-6112) Loc: +0x2EDC | offset to vtable
+ +0x1700 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1703 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x1704 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort)
+ +0x1706 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort)
+ +0x1708 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1750 | offset to field `name` (string)
+ +0x170C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1740 | offset to field `type` (table)
+ +0x1710 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x171C | offset to field `attributes` (vector)
+ +0x1714 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1718 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x18FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1718 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1900 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
- +0x1904 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1984 | offset to table[0]
- +0x1908 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1958 | offset to table[1]
- +0x190C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1930 | offset to table[2]
- +0x1910 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1914 | offset to table[3]
+ +0x171C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1724 | offset to table[0]
table (reflection.KeyValue):
- +0x1914 | B0 E3 FF FF | SOffset32 | 0xFFFFE3B0 (-7248) Loc: +0x3564 | offset to vtable
- +0x1918 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1928 | offset to field `key` (string)
- +0x191C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1920 | offset to field `value` (string)
+ +0x1724 | 08 DE FF FF | SOffset32 | 0xFFFFDE08 (-8696) Loc: +0x391C | offset to vtable
+ +0x1728 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1738 | offset to field `key` (string)
+ +0x172C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1730 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1920 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1924 | 33 39 | char[2] | 39 | string literal
- +0x1926 | 00 | char | 0x00 (0) | string terminator
+ +0x1730 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1734 | 34 37 | char[2] | 47 | string literal
+ +0x1736 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1928 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x192C | 69 64 | char[2] | id | string literal
- +0x192E | 00 | char | 0x00 (0) | string terminator
+ +0x1738 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x173C | 69 64 | char[2] | id | string literal
+ +0x173E | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x1740 | D8 E9 FF FF | SOffset32 | 0xFFFFE9D8 (-5672) Loc: +0x2D68 | offset to vtable
+ +0x1744 | 00 00 | uint8_t[2] | .. | padding
+ +0x1746 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x1747 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
+ +0x1748 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
+ +0x174C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x1750 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string
+ +0x1754 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal
+ +0x175C | 66 5F 65 6E 75 6D 73 | | f_enums
+ +0x1763 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x1764 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x2EDC | offset to vtable
+ +0x1768 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x176B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x176C | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort)
+ +0x176E | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort)
+ +0x1770 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x17B8 | offset to field `name` (string)
+ +0x1774 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x17A8 | offset to field `type` (table)
+ +0x1778 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1784 | offset to field `attributes` (vector)
+ +0x177C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1780 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x1780 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x1784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x1788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x178C | offset to table[0]
table (reflection.KeyValue):
- +0x1930 | CC E3 FF FF | SOffset32 | 0xFFFFE3CC (-7220) Loc: +0x3564 | offset to vtable
- +0x1934 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x194C | offset to field `key` (string)
- +0x1938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x193C | offset to field `value` (string)
+ +0x178C | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x391C | offset to vtable
+ +0x1790 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17A0 | offset to field `key` (string)
+ +0x1794 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1798 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x193C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1940 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x1948 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1949 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1798 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x179C | 34 36 | char[2] | 46 | string literal
+ +0x179E | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x194C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x1950 | 68 61 73 68 | char[4] | hash | string literal
- +0x1954 | 00 | char | 0x00 (0) | string terminator
+ +0x17A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x17A4 | 69 64 | char[2] | id | string literal
+ +0x17A6 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x17A8 | 38 DB FF FF | SOffset32 | 0xFFFFDB38 (-9416) Loc: +0x3C70 | offset to vtable
+ +0x17AC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x17AF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte)
+ +0x17B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
+ +0x17B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x17B8 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string
+ +0x17BC | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal
+ +0x17C4 | 67 75 6F 75 73 | | guous
+ +0x17C9 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1955 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x17CA | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x17CC | DA E9 FF FF | SOffset32 | 0xFFFFE9DA (-5670) Loc: +0x2DF2 | offset to vtable
+ +0x17D0 | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort)
+ +0x17D2 | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort)
+ +0x17D4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1820 | offset to field `name` (string)
+ +0x17D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x180C | offset to field `type` (table)
+ +0x17DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x17E8 | offset to field `attributes` (vector)
+ +0x17E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E4 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x17E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x17E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x17EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17F0 | offset to table[0]
table (reflection.KeyValue):
- +0x1958 | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x3564 | offset to vtable
+ +0x17F0 | D4 DE FF FF | SOffset32 | 0xFFFFDED4 (-8492) Loc: +0x391C | offset to vtable
+ +0x17F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1804 | offset to field `key` (string)
+ +0x17F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17FC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x17FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1800 | 34 35 | char[2] | 45 | string literal
+ +0x1802 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1804 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1808 | 69 64 | char[2] | id | string literal
+ +0x180A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x180C | 50 DE FF FF | SOffset32 | 0xFFFFDE50 (-8624) Loc: +0x39BC | offset to vtable
+ +0x1810 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1813 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
+ +0x1814 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
+ +0x1818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x181C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x1820 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
+ +0x1824 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal
+ +0x182C | 67 75 6F 75 73 5F 74 79 | | guous_ty
+ +0x1834 | 70 65 | | pe
+ +0x1836 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x1838 | 5C E9 FF FF | SOffset32 | 0xFFFFE95C (-5796) Loc: +0x2EDC | offset to vtable
+ +0x183C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x183F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x1840 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort)
+ +0x1842 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort)
+ +0x1844 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x188C | offset to field `name` (string)
+ +0x1848 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x187C | offset to field `type` (table)
+ +0x184C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1858 | offset to field `attributes` (vector)
+ +0x1850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1854 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x1854 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x1858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x185C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1860 | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x1860 | 44 DF FF FF | SOffset32 | 0xFFFFDF44 (-8380) Loc: +0x391C | offset to vtable
+ +0x1864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1874 | offset to field `key` (string)
+ +0x1868 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x186C | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x186C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1870 | 34 34 | char[2] | 44 | string literal
+ +0x1872 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1874 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1878 | 69 64 | char[2] | id | string literal
+ +0x187A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x187C | 0C DC FF FF | SOffset32 | 0xFFFFDC0C (-9204) Loc: +0x3C70 | offset to vtable
+ +0x1880 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1883 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte)
+ +0x1884 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
+ +0x1888 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x188C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string
+ +0x1890 | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal
+ +0x1898 | 75 65 | | ue
+ +0x189A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x189C | AA EA FF FF | SOffset32 | 0xFFFFEAAA (-5462) Loc: +0x2DF2 | offset to vtable
+ +0x18A0 | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort)
+ +0x18A2 | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort)
+ +0x18A4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x18F0 | offset to field `name` (string)
+ +0x18A8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x18DC | offset to field `type` (table)
+ +0x18AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x18B8 | offset to field `attributes` (vector)
+ +0x18B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18B4 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x18B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x18B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x18BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18C0 | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x18C0 | A4 DF FF FF | SOffset32 | 0xFFFFDFA4 (-8284) Loc: +0x391C | offset to vtable
+ +0x18C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x18D4 | offset to field `key` (string)
+ +0x18C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18CC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x18CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x18D0 | 34 33 | char[2] | 43 | string literal
+ +0x18D2 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x18D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x18D8 | 69 64 | char[2] | id | string literal
+ +0x18DA | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x18DC | 20 DF FF FF | SOffset32 | 0xFFFFDF20 (-8416) Loc: +0x39BC | offset to vtable
+ +0x18E0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x18E3 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
+ +0x18E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
+ +0x18E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x18EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x18F0 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string
+ +0x18F4 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal
+ +0x18FC | 75 65 5F 74 79 70 65 | | ue_type
+ +0x1903 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x1904 | 28 EA FF FF | SOffset32 | 0xFFFFEA28 (-5592) Loc: +0x2EDC | offset to vtable
+ +0x1908 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x190B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x190C | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort)
+ +0x190E | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort)
+ +0x1910 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1A10 | offset to field `name` (string)
+ +0x1914 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1A04 | offset to field `type` (table)
+ +0x1918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1924 | offset to field `attributes` (vector)
+ +0x191C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1920 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x1920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x1924 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items)
+ +0x1928 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x19D8 | offset to table[0]
+ +0x192C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x19AC | offset to table[1]
+ +0x1930 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1980 | offset to table[2]
+ +0x1934 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1958 | offset to table[3]
+ +0x1938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x193C | offset to table[4]
+
+table (reflection.KeyValue):
+ +0x193C | 20 E0 FF FF | SOffset32 | 0xFFFFE020 (-8160) Loc: +0x391C | offset to vtable
+ +0x1940 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1950 | offset to field `key` (string)
+ +0x1944 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1948 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1948 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x194C | 34 32 | char[2] | 42 | string literal
+ +0x194E | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1950 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1954 | 69 64 | char[2] | id | string literal
+ +0x1956 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.KeyValue):
+ +0x1958 | 3C E0 FF FF | SOffset32 | 0xFFFFE03C (-8132) Loc: +0x391C | offset to vtable
+0x195C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1974 | offset to field `key` (string)
+0x1960 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1964 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1964 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x1968 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
- +0x1970 | 6C 65 54 | | leT
- +0x1973 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x1974 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1978 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
- +0x1980 | 00 | char | 0x00 (0) | string terminator
+ +0x1964 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1968 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x1970 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1981 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1971 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x1974 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x1978 | 68 61 73 68 | char[4] | hash | string literal
+ +0x197C | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x197D | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.KeyValue):
- +0x1984 | 20 E4 FF FF | SOffset32 | 0xFFFFE420 (-7136) Loc: +0x3564 | offset to vtable
- +0x1988 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x199C | offset to field `key` (string)
- +0x198C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1990 | offset to field `value` (string)
+ +0x1980 | 64 E0 FF FF | SOffset32 | 0xFFFFE064 (-8092) Loc: +0x391C | offset to vtable
+ +0x1984 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x199C | offset to field `key` (string)
+ +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x198C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1990 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x1994 | 6E 61 6B 65 64 | char[5] | naked | string literal
- +0x1999 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x199A | 00 00 | uint8_t[2] | .. | padding
+ +0x198C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1990 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
+ +0x1998 | 6C 65 54 | | leT
+ +0x199B | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x199C | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x19A0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x19A8 | 74 79 70 65 | | type
- +0x19AC | 00 | char | 0x00 (0) | string terminator
+ +0x199C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x19A0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x19A8 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x19AD | 00 00 00 | uint8_t[3] | ... | padding
+ +0x19A9 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x19AC | 90 E0 FF FF | SOffset32 | 0xFFFFE090 (-8048) Loc: +0x391C | offset to vtable
+ +0x19B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x19C0 | offset to field `key` (string)
+ +0x19B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19B8 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x19B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string
+ +0x19BC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x19BD | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x19C0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x19C4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal
+ +0x19CC | 74 79 70 65 5F 67 65 74 | | type_get
+ +0x19D4 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x19D5 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x19D8 | BC E0 FF FF | SOffset32 | 0xFFFFE0BC (-8004) Loc: +0x391C | offset to vtable
+ +0x19DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x19F0 | offset to field `key` (string)
+ +0x19E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19E4 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x19E4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x19E8 | 6E 61 6B 65 64 | char[5] | naked | string literal
+ +0x19ED | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x19EE | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x19F0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x19F4 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x19FC | 74 79 70 65 | | type
+ +0x1A00 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1A01 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Type):
- +0x19B0 | CC E2 FF FF | SOffset32 | 0xFFFFE2CC (-7476) Loc: +0x36E4 | offset to vtable
- +0x19B4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x19B7 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x19B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x19BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1A04 | C8 EA FF FF | SOffset32 | 0xFFFFEAC8 (-5432) Loc: +0x2F3C | offset to vtable
+ +0x1A08 | 00 00 | uint8_t[2] | .. | padding
+ +0x1A0A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x1A0B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte)
+ +0x1A0C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x19C0 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
- +0x19C4 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal
- +0x19CC | 67 5F 72 65 66 65 72 65 | | g_refere
- +0x19D4 | 6E 63 65 | | nce
- +0x19D7 | 00 | char | 0x00 (0) | string terminator
+ +0x1A10 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string
+ +0x1A14 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal
+ +0x1A1C | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow
+ +0x1A24 | 6E 69 6E 67 5F 72 65 66 | | ning_ref
+ +0x1A2C | 65 72 65 6E 63 65 73 | | erences
+ +0x1A33 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x19D8 | B4 EE FF FF | SOffset32 | 0xFFFFEEB4 (-4428) Loc: +0x2B24 | offset to vtable
- +0x19DC | 00 00 00 | uint8_t[3] | ... | padding
- +0x19DF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x19E0 | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort)
- +0x19E2 | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort)
- +0x19E4 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x1A68 | offset to field `name` (string)
- +0x19E8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x1A58 | offset to field `type` (table)
- +0x19EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x19F8 | offset to field `attributes` (vector)
- +0x19F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19F4 | offset to field `documentation` (vector)
+ +0x1A34 | 42 EC FF FF | SOffset32 | 0xFFFFEC42 (-5054) Loc: +0x2DF2 | offset to vtable
+ +0x1A38 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort)
+ +0x1A3A | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort)
+ +0x1A3C | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x1B40 | offset to field `name` (string)
+ +0x1A40 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1B30 | offset to field `type` (table)
+ +0x1A44 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1A50 | offset to field `attributes` (vector)
+ +0x1A48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A4C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x19F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1A4C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x19F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x19FC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1A20 | offset to table[0]
- +0x1A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A04 | offset to table[1]
+ +0x1A50 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items)
+ +0x1A54 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x1B04 | offset to table[0]
+ +0x1A58 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1AD8 | offset to table[1]
+ +0x1A5C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1AAC | offset to table[2]
+ +0x1A60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1A84 | offset to table[3]
+ +0x1A64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A68 | offset to table[4]
table (reflection.KeyValue):
- +0x1A04 | A0 E4 FF FF | SOffset32 | 0xFFFFE4A0 (-7008) Loc: +0x3564 | offset to vtable
- +0x1A08 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1A18 | offset to field `key` (string)
- +0x1A0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A10 | offset to field `value` (string)
+ +0x1A68 | 4C E1 FF FF | SOffset32 | 0xFFFFE14C (-7860) Loc: +0x391C | offset to vtable
+ +0x1A6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1A7C | offset to field `key` (string)
+ +0x1A70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A74 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1A10 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1A14 | 33 38 | char[2] | 38 | string literal
- +0x1A16 | 00 | char | 0x00 (0) | string terminator
+ +0x1A74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1A78 | 34 31 | char[2] | 41 | string literal
+ +0x1A7A | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1A18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1A1C | 69 64 | char[2] | id | string literal
- +0x1A1E | 00 | char | 0x00 (0) | string terminator
+ +0x1A7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1A80 | 69 64 | char[2] | id | string literal
+ +0x1A82 | 00 | char | 0x00 (0) | string terminator
table (reflection.KeyValue):
- +0x1A20 | BC E4 FF FF | SOffset32 | 0xFFFFE4BC (-6980) Loc: +0x3564 | offset to vtable
- +0x1A24 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1A44 | offset to field `key` (string)
- +0x1A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A2C | offset to field `value` (string)
+ +0x1A84 | 68 E1 FF FF | SOffset32 | 0xFFFFE168 (-7832) Loc: +0x391C | offset to vtable
+ +0x1A88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AA0 | offset to field `key` (string)
+ +0x1A8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A90 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1A2C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x1A30 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal
- +0x1A38 | 70 74 72 5F 74 79 70 65 | | ptr_type
- +0x1A40 | 00 | char | 0x00 (0) | string terminator
+ +0x1A90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1A94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x1A9C | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1A41 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1A9D | 00 00 00 | uint8_t[3] | ... | padding
string (reflection.KeyValue.key):
- +0x1A44 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x1A48 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x1A50 | 74 79 70 65 | | type
- +0x1A54 | 00 | char | 0x00 (0) | string terminator
+ +0x1AA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x1AA4 | 68 61 73 68 | char[4] | hash | string literal
+ +0x1AA8 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1A55 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.Type):
- +0x1A58 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x29B0 | offset to vtable
- +0x1A5C | 00 00 | uint8_t[2] | .. | padding
- +0x1A5E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1A5F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x1A60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
- +0x1A64 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x1A68 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
- +0x1A6C | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal
- +0x1A74 | 66 5F 73 74 72 6F 6E 67 | | f_strong
- +0x1A7C | 5F 72 65 66 65 72 72 61 | | _referra
- +0x1A84 | 62 6C 65 73 | | bles
- +0x1A88 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1A89 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.Field):
- +0x1A8C | 68 EF FF FF | SOffset32 | 0xFFFFEF68 (-4248) Loc: +0x2B24 | offset to vtable
- +0x1A90 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1A93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1A94 | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort)
- +0x1A96 | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort)
- +0x1A98 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x1B68 | offset to field `name` (string)
- +0x1A9C | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1B5C | offset to field `type` (table)
- +0x1AA0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1AAC | offset to field `attributes` (vector)
- +0x1AA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AA8 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x1AA8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x1AAC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
- +0x1AB0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1B30 | offset to table[0]
- +0x1AB4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1B04 | offset to table[1]
- +0x1AB8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1ADC | offset to table[2]
- +0x1ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AC0 | offset to table[3]
+ +0x1AA9 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.KeyValue):
- +0x1AC0 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x3564 | offset to vtable
- +0x1AC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AD4 | offset to field `key` (string)
- +0x1AC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1ACC | offset to field `value` (string)
+ +0x1AAC | 90 E1 FF FF | SOffset32 | 0xFFFFE190 (-7792) Loc: +0x391C | offset to vtable
+ +0x1AB0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AC8 | offset to field `key` (string)
+ +0x1AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AB8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1ACC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1AD0 | 33 37 | char[2] | 37 | string literal
- +0x1AD2 | 00 | char | 0x00 (0) | string terminator
+ +0x1AB8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1ABC | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
+ +0x1AC4 | 6C 65 54 | | leT
+ +0x1AC7 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1AD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1AD8 | 69 64 | char[2] | id | string literal
- +0x1ADA | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x1ADC | 78 E5 FF FF | SOffset32 | 0xFFFFE578 (-6792) Loc: +0x3564 | offset to vtable
- +0x1AE0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AF8 | offset to field `key` (string)
- +0x1AE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AE8 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1AE8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1AEC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x1AF4 | 00 | char | 0x00 (0) | string terminator
+ +0x1AC8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1ACC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x1AD4 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1AF5 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1AD5 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1AD8 | BC E1 FF FF | SOffset32 | 0xFFFFE1BC (-7748) Loc: +0x391C | offset to vtable
+ +0x1ADC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AEC | offset to field `key` (string)
+ +0x1AE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AE4 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string
+ +0x1AE8 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1AE9 | 00 00 00 | uint8_t[3] | ... | padding
string (reflection.KeyValue.key):
- +0x1AF8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x1AFC | 68 61 73 68 | char[4] | hash | string literal
+ +0x1AEC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x1AF0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal
+ +0x1AF8 | 74 79 70 65 5F 67 65 74 | | type_get
+0x1B00 | 00 | char | 0x00 (0) | string terminator
padding:
+0x1B01 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.KeyValue):
- +0x1B04 | A0 E5 FF FF | SOffset32 | 0xFFFFE5A0 (-6752) Loc: +0x3564 | offset to vtable
- +0x1B08 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1B20 | offset to field `key` (string)
+ +0x1B04 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x391C | offset to vtable
+ +0x1B08 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B1C | offset to field `key` (string)
+0x1B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B10 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1B10 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x1B14 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
- +0x1B1C | 6C 65 54 | | leT
- +0x1B1F | 00 | char | 0x00 (0) | string terminator
+ +0x1B10 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x1B14 | 6E 61 6B 65 64 | char[5] | naked | string literal
+ +0x1B19 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1B1A | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x1B20 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1B24 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x1B1C | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x1B20 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x1B28 | 74 79 70 65 | | type
+0x1B2C | 00 | char | 0x00 (0) | string terminator
padding:
+0x1B2D | 00 00 00 | uint8_t[3] | ... | padding
-table (reflection.KeyValue):
- +0x1B30 | CC E5 FF FF | SOffset32 | 0xFFFFE5CC (-6708) Loc: +0x3564 | offset to vtable
- +0x1B34 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B48 | offset to field `key` (string)
- +0x1B38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B3C | offset to field `value` (string)
+table (reflection.Type):
+ +0x1B30 | 94 E0 FF FF | SOffset32 | 0xFFFFE094 (-8044) Loc: +0x3A9C | offset to vtable
+ +0x1B34 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1B37 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x1B38 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x1B3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-string (reflection.KeyValue.value):
- +0x1B3C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x1B40 | 6E 61 6B 65 64 | char[5] | naked | string literal
- +0x1B45 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1B46 | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x1B48 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x1B4C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x1B54 | 74 79 70 65 | | type
+string (reflection.Field.name):
+ +0x1B40 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string
+ +0x1B44 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal
+ +0x1B4C | 6E 67 5F 72 65 66 65 72 | | ng_refer
+ +0x1B54 | 65 6E 63 65 | | ence
+0x1B58 | 00 | char | 0x00 (0) | string terminator
padding:
+0x1B59 | 00 00 00 | uint8_t[3] | ... | padding
-table (reflection.Type):
- +0x1B5C | D8 EF FF FF | SOffset32 | 0xFFFFEFD8 (-4136) Loc: +0x2B84 | offset to vtable
- +0x1B60 | 00 00 | uint8_t[2] | .. | padding
- +0x1B62 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1B63 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte)
- +0x1B64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x1B68 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string
- +0x1B6C | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal
- +0x1B74 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r
- +0x1B7C | 65 66 65 72 65 6E 63 65 | | eference
- +0x1B84 | 73 | | s
- +0x1B85 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1B86 | 00 00 | uint8_t[2] | .. | padding
-
table (reflection.Field):
- +0x1B88 | 4E F1 FF FF | SOffset32 | 0xFFFFF14E (-3762) Loc: +0x2A3A | offset to vtable
- +0x1B8C | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort)
- +0x1B8E | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort)
- +0x1B90 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x1C64 | offset to field `name` (string)
- +0x1B94 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1C54 | offset to field `type` (table)
- +0x1B98 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1BA4 | offset to field `attributes` (vector)
- +0x1B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA0 | offset to field `documentation` (vector)
+ +0x1B5C | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x2EDC | offset to vtable
+ +0x1B60 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1B63 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x1B64 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort)
+ +0x1B66 | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort)
+ +0x1B68 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x1C78 | offset to field `name` (string)
+ +0x1B6C | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1C6C | offset to field `type` (table)
+ +0x1B70 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1B7C | offset to field `attributes` (vector)
+ +0x1B74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B78 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1BA0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1BA4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
- +0x1BA8 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1C28 | offset to table[0]
- +0x1BAC | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1BFC | offset to table[1]
- +0x1BB0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BD4 | offset to table[2]
- +0x1BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BB8 | offset to table[3]
+ +0x1B7C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items)
+ +0x1B80 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x1C34 | offset to table[0]
+ +0x1B84 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1C04 | offset to table[1]
+ +0x1B88 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1BD8 | offset to table[2]
+ +0x1B8C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BB0 | offset to table[3]
+ +0x1B90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B94 | offset to table[4]
table (reflection.KeyValue):
- +0x1BB8 | 54 E6 FF FF | SOffset32 | 0xFFFFE654 (-6572) Loc: +0x3564 | offset to vtable
- +0x1BBC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BCC | offset to field `key` (string)
- +0x1BC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BC4 | offset to field `value` (string)
+ +0x1B94 | 78 E2 FF FF | SOffset32 | 0xFFFFE278 (-7560) Loc: +0x391C | offset to vtable
+ +0x1B98 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BA8 | offset to field `key` (string)
+ +0x1B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA0 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1BC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1BC8 | 33 36 | char[2] | 36 | string literal
- +0x1BCA | 00 | char | 0x00 (0) | string terminator
+ +0x1BA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1BA4 | 34 30 | char[2] | 40 | string literal
+ +0x1BA6 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1BCC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1BD0 | 69 64 | char[2] | id | string literal
- +0x1BD2 | 00 | char | 0x00 (0) | string terminator
+ +0x1BA8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1BAC | 69 64 | char[2] | id | string literal
+ +0x1BAE | 00 | char | 0x00 (0) | string terminator
table (reflection.KeyValue):
- +0x1BD4 | 70 E6 FF FF | SOffset32 | 0xFFFFE670 (-6544) Loc: +0x3564 | offset to vtable
- +0x1BD8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BF0 | offset to field `key` (string)
- +0x1BDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BE0 | offset to field `value` (string)
+ +0x1BB0 | 94 E2 FF FF | SOffset32 | 0xFFFFE294 (-7532) Loc: +0x391C | offset to vtable
+ +0x1BB4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BCC | offset to field `key` (string)
+ +0x1BB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BBC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1BE0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1BE4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x1BEC | 00 | char | 0x00 (0) | string terminator
+ +0x1BBC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1BC0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x1BC8 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1BED | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1BC9 | 00 00 00 | uint8_t[3] | ... | padding
string (reflection.KeyValue.key):
- +0x1BF0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x1BF4 | 68 61 73 68 | char[4] | hash | string literal
- +0x1BF8 | 00 | char | 0x00 (0) | string terminator
+ +0x1BCC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x1BD0 | 68 61 73 68 | char[4] | hash | string literal
+ +0x1BD4 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1BF9 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.KeyValue):
- +0x1BFC | 98 E6 FF FF | SOffset32 | 0xFFFFE698 (-6504) Loc: +0x3564 | offset to vtable
- +0x1C00 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1C18 | offset to field `key` (string)
- +0x1C04 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C08 | offset to field `value` (string)
+ +0x1BD8 | BC E2 FF FF | SOffset32 | 0xFFFFE2BC (-7492) Loc: +0x391C | offset to vtable
+ +0x1BDC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BF4 | offset to field `key` (string)
+ +0x1BE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BE4 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1C08 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x1C0C | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
- +0x1C14 | 6C 65 54 | | leT
- +0x1C17 | 00 | char | 0x00 (0) | string terminator
+ +0x1BE4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1BE8 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
+ +0x1BF0 | 6C 65 54 | | leT
+ +0x1BF3 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1C18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x1C1C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
- +0x1C24 | 00 | char | 0x00 (0) | string terminator
+ +0x1BF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1BF8 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x1C00 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1C25 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1C01 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.KeyValue):
- +0x1C28 | C4 E6 FF FF | SOffset32 | 0xFFFFE6C4 (-6460) Loc: +0x3564 | offset to vtable
- +0x1C2C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1C40 | offset to field `key` (string)
- +0x1C30 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C34 | offset to field `value` (string)
+ +0x1C04 | E8 E2 FF FF | SOffset32 | 0xFFFFE2E8 (-7448) Loc: +0x391C | offset to vtable
+ +0x1C08 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1C1C | offset to field `key` (string)
+ +0x1C0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C10 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1C34 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x1C38 | 6E 61 6B 65 64 | char[5] | naked | string literal
- +0x1C3D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1C3E | 00 00 | uint8_t[2] | .. | padding
+ +0x1C10 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
+ +0x1C14 | 2E 67 65 74 28 29 | char[6] | .get() | string literal
+ +0x1C1A | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1C40 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x1C44 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x1C4C | 74 79 70 65 | | type
- +0x1C50 | 00 | char | 0x00 (0) | string terminator
+ +0x1C1C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x1C20 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal
+ +0x1C28 | 74 79 70 65 5F 67 65 74 | | type_get
+ +0x1C30 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1C51 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1C31 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1C34 | 18 E3 FF FF | SOffset32 | 0xFFFFE318 (-7400) Loc: +0x391C | offset to vtable
+ +0x1C38 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1C58 | offset to field `key` (string)
+ +0x1C3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C40 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1C40 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x1C44 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal
+ +0x1C4C | 70 74 72 5F 74 79 70 65 | | ptr_type
+ +0x1C54 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1C55 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x1C58 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x1C5C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x1C64 | 74 79 70 65 | | type
+ +0x1C68 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1C69 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Type):
- +0x1C54 | 70 E5 FF FF | SOffset32 | 0xFFFFE570 (-6800) Loc: +0x36E4 | offset to vtable
- +0x1C58 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1C5B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x1C5C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x1C60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x1C6C | 30 ED FF FF | SOffset32 | 0xFFFFED30 (-4816) Loc: +0x2F3C | offset to vtable
+ +0x1C70 | 00 00 | uint8_t[2] | .. | padding
+ +0x1C72 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x1C73 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte)
+ +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1C64 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string
- +0x1C68 | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal
- +0x1C70 | 65 61 6B 5F 72 65 66 65 | | eak_refe
- +0x1C78 | 72 65 6E 63 65 | | rence
- +0x1C7D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1C7E | 00 00 | uint8_t[2] | .. | padding
+ +0x1C78 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string
+ +0x1C7C | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal
+ +0x1C84 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own
+ +0x1C8C | 69 6E 67 5F 72 65 66 65 | | ing_refe
+ +0x1C94 | 72 65 6E 63 65 73 | | rences
+ +0x1C9A | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x1C80 | 5C F1 FF FF | SOffset32 | 0xFFFFF15C (-3748) Loc: +0x2B24 | offset to vtable
- +0x1C84 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1C87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1C88 | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort)
- +0x1C8A | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort)
- +0x1C8C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1CD4 | offset to field `name` (string)
- +0x1C90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1CC4 | offset to field `type` (table)
- +0x1C94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1CA0 | offset to field `attributes` (vector)
- +0x1C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C9C | offset to field `documentation` (vector)
+ +0x1C9C | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x2DF2 | offset to vtable
+ +0x1CA0 | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort)
+ +0x1CA2 | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort)
+ +0x1CA4 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x1D78 | offset to field `name` (string)
+ +0x1CA8 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1D68 | offset to field `type` (table)
+ +0x1CAC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1CB8 | offset to field `attributes` (vector)
+ +0x1CB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CB4 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1C9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1CB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1CA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1CA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CA8 | offset to table[0]
+ +0x1CB8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
+ +0x1CBC | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1D3C | offset to table[0]
+ +0x1CC0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1D10 | offset to table[1]
+ +0x1CC4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1CE8 | offset to table[2]
+ +0x1CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CCC | offset to table[3]
table (reflection.KeyValue):
- +0x1CA8 | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x3564 | offset to vtable
- +0x1CAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1CBC | offset to field `key` (string)
- +0x1CB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CB4 | offset to field `value` (string)
+ +0x1CCC | B0 E3 FF FF | SOffset32 | 0xFFFFE3B0 (-7248) Loc: +0x391C | offset to vtable
+ +0x1CD0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1CE0 | offset to field `key` (string)
+ +0x1CD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CD8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1CB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1CB8 | 33 35 | char[2] | 35 | string literal
- +0x1CBA | 00 | char | 0x00 (0) | string terminator
+ +0x1CD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1CDC | 33 39 | char[2] | 39 | string literal
+ +0x1CDE | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1CBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1CC0 | 69 64 | char[2] | id | string literal
- +0x1CC2 | 00 | char | 0x00 (0) | string terminator
+ +0x1CE0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1CE4 | 69 64 | char[2] | id | string literal
+ +0x1CE6 | 00 | char | 0x00 (0) | string terminator
-table (reflection.Type):
- +0x1CC4 | 14 F3 FF FF | SOffset32 | 0xFFFFF314 (-3308) Loc: +0x29B0 | offset to vtable
- +0x1CC8 | 00 00 | uint8_t[2] | .. | padding
- +0x1CCA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1CCB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x1CCC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
- +0x1CD0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+table (reflection.KeyValue):
+ +0x1CE8 | CC E3 FF FF | SOffset32 | 0xFFFFE3CC (-7220) Loc: +0x391C | offset to vtable
+ +0x1CEC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D04 | offset to field `key` (string)
+ +0x1CF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CF4 | offset to field `value` (string)
-string (reflection.Field.name):
- +0x1CD4 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string
- +0x1CD8 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal
- +0x1CE0 | 66 5F 72 65 66 65 72 72 | | f_referr
- +0x1CE8 | 61 62 6C 65 73 | | ables
- +0x1CED | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.value):
+ +0x1CF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1CF8 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x1D00 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1CEE | 00 00 | uint8_t[2] | .. | padding
+ +0x1D01 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x1D04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x1D08 | 68 61 73 68 | char[4] | hash | string literal
+ +0x1D0C | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1D0D | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1D10 | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x391C | offset to vtable
+ +0x1D14 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D2C | offset to field `key` (string)
+ +0x1D18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D1C | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1D1C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1D20 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
+ +0x1D28 | 6C 65 54 | | leT
+ +0x1D2B | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1D2C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1D30 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x1D38 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1D39 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1D3C | 20 E4 FF FF | SOffset32 | 0xFFFFE420 (-7136) Loc: +0x391C | offset to vtable
+ +0x1D40 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1D54 | offset to field `key` (string)
+ +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D48 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1D48 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x1D4C | 6E 61 6B 65 64 | char[5] | naked | string literal
+ +0x1D51 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1D52 | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x1D54 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x1D58 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x1D60 | 74 79 70 65 | | type
+ +0x1D64 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1D65 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x1D68 | CC E2 FF FF | SOffset32 | 0xFFFFE2CC (-7476) Loc: +0x3A9C | offset to vtable
+ +0x1D6C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1D6F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x1D70 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x1D74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x1D78 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
+ +0x1D7C | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal
+ +0x1D84 | 67 5F 72 65 66 65 72 65 | | g_refere
+ +0x1D8C | 6E 63 65 | | nce
+ +0x1D8F | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x1CF0 | CC F1 FF FF | SOffset32 | 0xFFFFF1CC (-3636) Loc: +0x2B24 | offset to vtable
- +0x1CF4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1CF7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1CF8 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort)
- +0x1CFA | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort)
- +0x1CFC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1D44 | offset to field `name` (string)
- +0x1D00 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1D34 | offset to field `type` (table)
- +0x1D04 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1D10 | offset to field `attributes` (vector)
- +0x1D08 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D0C | offset to field `documentation` (vector)
+ +0x1D90 | B4 EE FF FF | SOffset32 | 0xFFFFEEB4 (-4428) Loc: +0x2EDC | offset to vtable
+ +0x1D94 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1D97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x1D98 | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort)
+ +0x1D9A | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort)
+ +0x1D9C | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x1E20 | offset to field `name` (string)
+ +0x1DA0 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x1E10 | offset to field `type` (table)
+ +0x1DA4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1DB0 | offset to field `attributes` (vector)
+ +0x1DA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DAC | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1D0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1DAC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1D10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1D14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D18 | offset to table[0]
+ +0x1DB0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x1DB4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1DD8 | offset to table[0]
+ +0x1DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DBC | offset to table[1]
table (reflection.KeyValue):
- +0x1D18 | B4 E7 FF FF | SOffset32 | 0xFFFFE7B4 (-6220) Loc: +0x3564 | offset to vtable
- +0x1D1C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1D2C | offset to field `key` (string)
- +0x1D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D24 | offset to field `value` (string)
+ +0x1DBC | A0 E4 FF FF | SOffset32 | 0xFFFFE4A0 (-7008) Loc: +0x391C | offset to vtable
+ +0x1DC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1DD0 | offset to field `key` (string)
+ +0x1DC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DC8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1D24 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1D28 | 33 34 | char[2] | 34 | string literal
- +0x1D2A | 00 | char | 0x00 (0) | string terminator
+ +0x1DC8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1DCC | 33 38 | char[2] | 38 | string literal
+ +0x1DCE | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1D2C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1D30 | 69 64 | char[2] | id | string literal
- +0x1D32 | 00 | char | 0x00 (0) | string terminator
+ +0x1DD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1DD4 | 69 64 | char[2] | id | string literal
+ +0x1DD6 | 00 | char | 0x00 (0) | string terminator
-table (reflection.Type):
- +0x1D34 | 7C E4 FF FF | SOffset32 | 0xFFFFE47C (-7044) Loc: +0x38B8 | offset to vtable
- +0x1D38 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1D3B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x1D3C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int)
- +0x1D40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+table (reflection.KeyValue):
+ +0x1DD8 | BC E4 FF FF | SOffset32 | 0xFFFFE4BC (-6980) Loc: +0x391C | offset to vtable
+ +0x1DDC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1DFC | offset to field `key` (string)
+ +0x1DE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DE4 | offset to field `value` (string)
-string (reflection.Field.name):
- +0x1D44 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string
- +0x1D48 | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal
- +0x1D50 | 61 6D 65 73 70 61 63 65 | | amespace
- +0x1D58 | 5F 74 65 73 74 | | _test
- +0x1D5D | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.value):
+ +0x1DE4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x1DE8 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal
+ +0x1DF0 | 70 74 72 5F 74 79 70 65 | | ptr_type
+ +0x1DF8 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1D5E | 00 00 | uint8_t[2] | .. | padding
+ +0x1DF9 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x1DFC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x1E00 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x1E08 | 74 79 70 65 | | type
+ +0x1E0C | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1E0D | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x1E10 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x2D68 | offset to vtable
+ +0x1E14 | 00 00 | uint8_t[2] | .. | padding
+ +0x1E16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x1E17 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x1E18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
+ +0x1E1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x1E20 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
+ +0x1E24 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal
+ +0x1E2C | 66 5F 73 74 72 6F 6E 67 | | f_strong
+ +0x1E34 | 5F 72 65 66 65 72 72 61 | | _referra
+ +0x1E3C | 62 6C 65 73 | | bles
+ +0x1E40 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1E41 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x1D60 | 3C F2 FF FF | SOffset32 | 0xFFFFF23C (-3524) Loc: +0x2B24 | offset to vtable
- +0x1D64 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1D67 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1D68 | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort)
- +0x1D6A | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort)
- +0x1D6C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1DB0 | offset to field `name` (string)
- +0x1D70 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1DA4 | offset to field `type` (table)
- +0x1D74 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1D80 | offset to field `attributes` (vector)
- +0x1D78 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D7C | offset to field `documentation` (vector)
+ +0x1E44 | 68 EF FF FF | SOffset32 | 0xFFFFEF68 (-4248) Loc: +0x2EDC | offset to vtable
+ +0x1E48 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x1E4B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x1E4C | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort)
+ +0x1E4E | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort)
+ +0x1E50 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x1F20 | offset to field `name` (string)
+ +0x1E54 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1F14 | offset to field `type` (table)
+ +0x1E58 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1E64 | offset to field `attributes` (vector)
+ +0x1E5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E60 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1D7C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1E60 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1D80 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1D84 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D88 | offset to table[0]
+ +0x1E64 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
+ +0x1E68 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1EE8 | offset to table[0]
+ +0x1E6C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1EBC | offset to table[1]
+ +0x1E70 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1E94 | offset to table[2]
+ +0x1E74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E78 | offset to table[3]
table (reflection.KeyValue):
- +0x1D88 | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x3564 | offset to vtable
- +0x1D8C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1D9C | offset to field `key` (string)
- +0x1D90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D94 | offset to field `value` (string)
+ +0x1E78 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x391C | offset to vtable
+ +0x1E7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E8C | offset to field `key` (string)
+ +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E84 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1D94 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1D98 | 33 33 | char[2] | 33 | string literal
- +0x1D9A | 00 | char | 0x00 (0) | string terminator
+ +0x1E84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1E88 | 33 37 | char[2] | 37 | string literal
+ +0x1E8A | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1D9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1DA0 | 69 64 | char[2] | id | string literal
- +0x1DA2 | 00 | char | 0x00 (0) | string terminator
+ +0x1E8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1E90 | 69 64 | char[2] | id | string literal
+ +0x1E92 | 00 | char | 0x00 (0) | string terminator
-table (reflection.Type):
- +0x1DA4 | 20 F2 FF FF | SOffset32 | 0xFFFFF220 (-3552) Loc: +0x2B84 | offset to vtable
- +0x1DA8 | 00 00 | uint8_t[2] | .. | padding
- +0x1DAA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1DAB | 0C | uint8_t | 0x0C (12) | table field `element` (Byte)
- +0x1DAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
+table (reflection.KeyValue):
+ +0x1E94 | 78 E5 FF FF | SOffset32 | 0xFFFFE578 (-6792) Loc: +0x391C | offset to vtable
+ +0x1E98 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1EB0 | offset to field `key` (string)
+ +0x1E9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EA0 | offset to field `value` (string)
-string (reflection.Field.name):
- +0x1DB0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x1DB4 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal
- +0x1DBC | 66 5F 64 6F 75 62 6C 65 | | f_double
- +0x1DC4 | 73 | | s
- +0x1DC5 | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.value):
+ +0x1EA0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1EA4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x1EAC | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1DC6 | 00 00 | uint8_t[2] | .. | padding
+ +0x1EAD | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x1EB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x1EB4 | 68 61 73 68 | char[4] | hash | string literal
+ +0x1EB8 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1EB9 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1EBC | A0 E5 FF FF | SOffset32 | 0xFFFFE5A0 (-6752) Loc: +0x391C | offset to vtable
+ +0x1EC0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1ED8 | offset to field `key` (string)
+ +0x1EC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EC8 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1EC8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1ECC | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
+ +0x1ED4 | 6C 65 54 | | leT
+ +0x1ED7 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1ED8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1EDC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x1EE4 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1EE5 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1EE8 | CC E5 FF FF | SOffset32 | 0xFFFFE5CC (-6708) Loc: +0x391C | offset to vtable
+ +0x1EEC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1F00 | offset to field `key` (string)
+ +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EF4 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1EF4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x1EF8 | 6E 61 6B 65 64 | char[5] | naked | string literal
+ +0x1EFD | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1EFE | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x1F00 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x1F04 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x1F0C | 74 79 70 65 | | type
+ +0x1F10 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1F11 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x1F14 | D8 EF FF FF | SOffset32 | 0xFFFFEFD8 (-4136) Loc: +0x2F3C | offset to vtable
+ +0x1F18 | 00 00 | uint8_t[2] | .. | padding
+ +0x1F1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x1F1B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte)
+ +0x1F1C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x1F20 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string
+ +0x1F24 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal
+ +0x1F2C | 66 5F 77 65 61 6B 5F 72 | | f_weak_r
+ +0x1F34 | 65 66 65 72 65 6E 63 65 | | eference
+ +0x1F3C | 73 | | s
+ +0x1F3D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1F3E | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1DC8 | A4 F2 FF FF | SOffset32 | 0xFFFFF2A4 (-3420) Loc: +0x2B24 | offset to vtable
- +0x1DCC | 00 00 00 | uint8_t[3] | ... | padding
- +0x1DCF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1DD0 | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort)
- +0x1DD2 | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort)
- +0x1DD4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1E18 | offset to field `name` (string)
- +0x1DD8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1E0C | offset to field `type` (table)
- +0x1DDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1DE8 | offset to field `attributes` (vector)
- +0x1DE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DE4 | offset to field `documentation` (vector)
+ +0x1F40 | 4E F1 FF FF | SOffset32 | 0xFFFFF14E (-3762) Loc: +0x2DF2 | offset to vtable
+ +0x1F44 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort)
+ +0x1F46 | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort)
+ +0x1F48 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x201C | offset to field `name` (string)
+ +0x1F4C | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x200C | offset to field `type` (table)
+ +0x1F50 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1F5C | offset to field `attributes` (vector)
+ +0x1F54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F58 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1DE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x1F58 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1DEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DF0 | offset to table[0]
+ +0x1F5C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
+ +0x1F60 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1FE0 | offset to table[0]
+ +0x1F64 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1FB4 | offset to table[1]
+ +0x1F68 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1F8C | offset to table[2]
+ +0x1F6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F70 | offset to table[3]
table (reflection.KeyValue):
- +0x1DF0 | 8C E8 FF FF | SOffset32 | 0xFFFFE88C (-6004) Loc: +0x3564 | offset to vtable
- +0x1DF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E04 | offset to field `key` (string)
- +0x1DF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DFC | offset to field `value` (string)
+ +0x1F70 | 54 E6 FF FF | SOffset32 | 0xFFFFE654 (-6572) Loc: +0x391C | offset to vtable
+ +0x1F74 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F84 | offset to field `key` (string)
+ +0x1F78 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F7C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1DFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1E00 | 33 32 | char[2] | 32 | string literal
- +0x1E02 | 00 | char | 0x00 (0) | string terminator
+ +0x1F7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1F80 | 33 36 | char[2] | 36 | string literal
+ +0x1F82 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1E04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1E08 | 69 64 | char[2] | id | string literal
- +0x1E0A | 00 | char | 0x00 (0) | string terminator
+ +0x1F84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x1F88 | 69 64 | char[2] | id | string literal
+ +0x1F8A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.KeyValue):
+ +0x1F8C | 70 E6 FF FF | SOffset32 | 0xFFFFE670 (-6544) Loc: +0x391C | offset to vtable
+ +0x1F90 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1FA8 | offset to field `key` (string)
+ +0x1F94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F98 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1F98 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1F9C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x1FA4 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1FA5 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x1FA8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x1FAC | 68 61 73 68 | char[4] | hash | string literal
+ +0x1FB0 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1FB1 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1FB4 | 98 E6 FF FF | SOffset32 | 0xFFFFE698 (-6504) Loc: +0x391C | offset to vtable
+ +0x1FB8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1FD0 | offset to field `key` (string)
+ +0x1FBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FC0 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1FC0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x1FC4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal
+ +0x1FCC | 6C 65 54 | | leT
+ +0x1FCF | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x1FD0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x1FD4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x1FDC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1FDD | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x1FE0 | C4 E6 FF FF | SOffset32 | 0xFFFFE6C4 (-6460) Loc: +0x391C | offset to vtable
+ +0x1FE4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1FF8 | offset to field `key` (string)
+ +0x1FE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FEC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x1FEC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x1FF0 | 6E 61 6B 65 64 | char[5] | naked | string literal
+ +0x1FF5 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x1FF6 | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x1FF8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x1FFC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x2004 | 74 79 70 65 | | type
+ +0x2008 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2009 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Type):
- +0x1E0C | 88 F2 FF FF | SOffset32 | 0xFFFFF288 (-3448) Loc: +0x2B84 | offset to vtable
- +0x1E10 | 00 00 | uint8_t[2] | .. | padding
- +0x1E12 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1E13 | 09 | uint8_t | 0x09 (9) | table field `element` (Byte)
- +0x1E14 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
+ +0x200C | 70 E5 FF FF | SOffset32 | 0xFFFFE570 (-6800) Loc: +0x3A9C | offset to vtable
+ +0x2010 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2013 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x2014 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x2018 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1E18 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string
- +0x1E1C | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal
- +0x1E24 | 66 5F 6C 6F 6E 67 73 | | f_longs
- +0x1E2B | 00 | char | 0x00 (0) | string terminator
+ +0x201C | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string
+ +0x2020 | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal
+ +0x2028 | 65 61 6B 5F 72 65 66 65 | | eak_refe
+ +0x2030 | 72 65 6E 63 65 | | rence
+ +0x2035 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2036 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1E2C | 08 F3 FF FF | SOffset32 | 0xFFFFF308 (-3320) Loc: +0x2B24 | offset to vtable
- +0x1E30 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1E33 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1E34 | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort)
- +0x1E36 | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort)
- +0x1E38 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1E80 | offset to field `name` (string)
- +0x1E3C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1E70 | offset to field `type` (table)
- +0x1E40 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1E4C | offset to field `attributes` (vector)
- +0x1E44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E48 | offset to field `documentation` (vector)
+ +0x2038 | 5C F1 FF FF | SOffset32 | 0xFFFFF15C (-3748) Loc: +0x2EDC | offset to vtable
+ +0x203C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x203F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2040 | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort)
+ +0x2042 | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort)
+ +0x2044 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x208C | offset to field `name` (string)
+ +0x2048 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x207C | offset to field `type` (table)
+ +0x204C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2058 | offset to field `attributes` (vector)
+ +0x2050 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2054 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1E48 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2054 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1E4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1E50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E54 | offset to table[0]
+ +0x2058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x205C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2060 | offset to table[0]
table (reflection.KeyValue):
- +0x1E54 | F0 E8 FF FF | SOffset32 | 0xFFFFE8F0 (-5904) Loc: +0x3564 | offset to vtable
- +0x1E58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E68 | offset to field `key` (string)
- +0x1E5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E60 | offset to field `value` (string)
+ +0x2060 | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x391C | offset to vtable
+ +0x2064 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2074 | offset to field `key` (string)
+ +0x2068 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x206C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1E60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1E64 | 33 31 | char[2] | 31 | string literal
- +0x1E66 | 00 | char | 0x00 (0) | string terminator
+ +0x206C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2070 | 33 35 | char[2] | 35 | string literal
+ +0x2072 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1E68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1E6C | 69 64 | char[2] | id | string literal
- +0x1E6E | 00 | char | 0x00 (0) | string terminator
+ +0x2074 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2078 | 69 64 | char[2] | id | string literal
+ +0x207A | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1E70 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x29B0 | offset to vtable
- +0x1E74 | 00 00 | uint8_t[2] | .. | padding
- +0x1E76 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1E77 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x1E78 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
- +0x1E7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+ +0x207C | 14 F3 FF FF | SOffset32 | 0xFFFFF314 (-3308) Loc: +0x2D68 | offset to vtable
+ +0x2080 | 00 00 | uint8_t[2] | .. | padding
+ +0x2082 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2083 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x2084 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int)
+ +0x2088 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1E80 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x1E84 | 74 65 73 74 35 | char[5] | test5 | string literal
- +0x1E89 | 00 | char | 0x00 (0) | string terminator
+ +0x208C | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string
+ +0x2090 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal
+ +0x2098 | 66 5F 72 65 66 65 72 72 | | f_referr
+ +0x20A0 | 61 62 6C 65 73 | | ables
+ +0x20A5 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1E8A | 00 00 | uint8_t[2] | .. | padding
+ +0x20A6 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1E8C | 68 F3 FF FF | SOffset32 | 0xFFFFF368 (-3224) Loc: +0x2B24 | offset to vtable
- +0x1E90 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1E93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1E94 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort)
- +0x1E96 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort)
- +0x1E98 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x1F04 | offset to field `name` (string)
- +0x1E9C | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x1EF8 | offset to field `type` (table)
- +0x1EA0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1EAC | offset to field `attributes` (vector)
- +0x1EA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EA8 | offset to field `documentation` (vector)
+ +0x20A8 | CC F1 FF FF | SOffset32 | 0xFFFFF1CC (-3636) Loc: +0x2EDC | offset to vtable
+ +0x20AC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x20AF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x20B0 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort)
+ +0x20B2 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort)
+ +0x20B4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x20FC | offset to field `name` (string)
+ +0x20B8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x20EC | offset to field `type` (table)
+ +0x20BC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x20C8 | offset to field `attributes` (vector)
+ +0x20C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20C4 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1EA8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x20C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1EAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x1EB0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1ED4 | offset to table[0]
- +0x1EB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EB8 | offset to table[1]
+ +0x20C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x20CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20D0 | offset to table[0]
table (reflection.KeyValue):
- +0x1EB8 | 54 E9 FF FF | SOffset32 | 0xFFFFE954 (-5804) Loc: +0x3564 | offset to vtable
- +0x1EBC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1ECC | offset to field `key` (string)
- +0x1EC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EC4 | offset to field `value` (string)
+ +0x20D0 | B4 E7 FF FF | SOffset32 | 0xFFFFE7B4 (-6220) Loc: +0x391C | offset to vtable
+ +0x20D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x20E4 | offset to field `key` (string)
+ +0x20D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20DC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1EC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1EC8 | 33 30 | char[2] | 30 | string literal
- +0x1ECA | 00 | char | 0x00 (0) | string terminator
+ +0x20DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x20E0 | 33 34 | char[2] | 34 | string literal
+ +0x20E2 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1ECC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1ED0 | 69 64 | char[2] | id | string literal
- +0x1ED2 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x1ED4 | 70 E9 FF FF | SOffset32 | 0xFFFFE970 (-5776) Loc: +0x3564 | offset to vtable
- +0x1ED8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1EE8 | offset to field `key` (string)
- +0x1EDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EE0 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x1EE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x1EE4 | 30 | char[1] | 0 | string literal
- +0x1EE5 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x1EE6 | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x1EE8 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string
- +0x1EEC | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal
- +0x1EF4 | 65 72 | | er
- +0x1EF6 | 00 | char | 0x00 (0) | string terminator
+ +0x20E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x20E8 | 69 64 | char[2] | id | string literal
+ +0x20EA | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1EF8 | 74 F3 FF FF | SOffset32 | 0xFFFFF374 (-3212) Loc: +0x2B84 | offset to vtable
- +0x1EFC | 00 00 | uint8_t[2] | .. | padding
- +0x1EFE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1EFF | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
- +0x1F00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x20EC | 7C E4 FF FF | SOffset32 | 0xFFFFE47C (-7044) Loc: +0x3C70 | offset to vtable
+ +0x20F0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x20F3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x20F4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int)
+ +0x20F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1F04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x1F08 | 66 6C 65 78 | char[4] | flex | string literal
- +0x1F0C | 00 | char | 0x00 (0) | string terminator
+ +0x20FC | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string
+ +0x2100 | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal
+ +0x2108 | 61 6D 65 73 70 61 63 65 | | amespace
+ +0x2110 | 5F 74 65 73 74 | | _test
+ +0x2115 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x1F0D | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2116 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1F10 | EC F3 FF FF | SOffset32 | 0xFFFFF3EC (-3092) Loc: +0x2B24 | offset to vtable
- +0x1F14 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1F17 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1F18 | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort)
- +0x1F1A | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort)
- +0x1F1C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1F64 | offset to field `name` (string)
- +0x1F20 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1F54 | offset to field `type` (table)
- +0x1F24 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1F30 | offset to field `attributes` (vector)
- +0x1F28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F2C | offset to field `documentation` (vector)
+ +0x2118 | 3C F2 FF FF | SOffset32 | 0xFFFFF23C (-3524) Loc: +0x2EDC | offset to vtable
+ +0x211C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x211F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2120 | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort)
+ +0x2122 | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort)
+ +0x2124 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2168 | offset to field `name` (string)
+ +0x2128 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x215C | offset to field `type` (table)
+ +0x212C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2138 | offset to field `attributes` (vector)
+ +0x2130 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2134 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1F2C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2134 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1F30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1F34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F38 | offset to table[0]
+ +0x2138 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to table[0]
table (reflection.KeyValue):
- +0x1F38 | D4 E9 FF FF | SOffset32 | 0xFFFFE9D4 (-5676) Loc: +0x3564 | offset to vtable
- +0x1F3C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F4C | offset to field `key` (string)
- +0x1F40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F44 | offset to field `value` (string)
+ +0x2140 | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x391C | offset to vtable
+ +0x2144 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2154 | offset to field `key` (string)
+ +0x2148 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x214C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1F44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1F48 | 32 39 | char[2] | 29 | string literal
- +0x1F4A | 00 | char | 0x00 (0) | string terminator
+ +0x214C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2150 | 33 33 | char[2] | 33 | string literal
+ +0x2152 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1F4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1F50 | 69 64 | char[2] | id | string literal
- +0x1F52 | 00 | char | 0x00 (0) | string terminator
+ +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2158 | 69 64 | char[2] | id | string literal
+ +0x215A | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1F54 | A4 F5 FF FF | SOffset32 | 0xFFFFF5A4 (-2652) Loc: +0x29B0 | offset to vtable
- +0x1F58 | 00 00 | uint8_t[2] | .. | padding
- +0x1F5A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1F5B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x1F5C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
- +0x1F60 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+ +0x215C | 20 F2 FF FF | SOffset32 | 0xFFFFF220 (-3552) Loc: +0x2F3C | offset to vtable
+ +0x2160 | 00 00 | uint8_t[2] | .. | padding
+ +0x2162 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2163 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte)
+ +0x2164 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1F64 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string
- +0x1F68 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal
- +0x1F70 | 79 6F 66 73 6F 72 74 65 | | yofsorte
- +0x1F78 | 64 73 74 72 75 63 74 | | dstruct
- +0x1F7F | 00 | char | 0x00 (0) | string terminator
+ +0x2168 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x216C | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal
+ +0x2174 | 66 5F 64 6F 75 62 6C 65 | | f_double
+ +0x217C | 73 | | s
+ +0x217D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x217E | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x1F80 | 5C F4 FF FF | SOffset32 | 0xFFFFF45C (-2980) Loc: +0x2B24 | offset to vtable
- +0x1F84 | 00 00 00 | uint8_t[3] | ... | padding
- +0x1F87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x1F88 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort)
- +0x1F8A | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort)
- +0x1F8C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1FD0 | offset to field `name` (string)
- +0x1F90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1FC4 | offset to field `type` (table)
- +0x1F94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1FA0 | offset to field `attributes` (vector)
- +0x1F98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F9C | offset to field `documentation` (vector)
+ +0x2180 | A4 F2 FF FF | SOffset32 | 0xFFFFF2A4 (-3420) Loc: +0x2EDC | offset to vtable
+ +0x2184 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2187 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2188 | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort)
+ +0x218A | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort)
+ +0x218C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x21D0 | offset to field `name` (string)
+ +0x2190 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x21C4 | offset to field `type` (table)
+ +0x2194 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x21A0 | offset to field `attributes` (vector)
+ +0x2198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x219C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x1F9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x219C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x1FA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x1FA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FA8 | offset to table[0]
+ +0x21A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x21A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A8 | offset to table[0]
table (reflection.KeyValue):
- +0x1FA8 | 44 EA FF FF | SOffset32 | 0xFFFFEA44 (-5564) Loc: +0x3564 | offset to vtable
- +0x1FAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1FBC | offset to field `key` (string)
- +0x1FB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FB4 | offset to field `value` (string)
+ +0x21A8 | 8C E8 FF FF | SOffset32 | 0xFFFFE88C (-6004) Loc: +0x391C | offset to vtable
+ +0x21AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21BC | offset to field `key` (string)
+ +0x21B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21B4 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x1FB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1FB8 | 32 38 | char[2] | 28 | string literal
- +0x1FBA | 00 | char | 0x00 (0) | string terminator
+ +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x21B8 | 33 32 | char[2] | 32 | string literal
+ +0x21BA | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x1FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x1FC0 | 69 64 | char[2] | id | string literal
- +0x1FC2 | 00 | char | 0x00 (0) | string terminator
+ +0x21BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x21C0 | 69 64 | char[2] | id | string literal
+ +0x21C2 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x1FC4 | 40 F4 FF FF | SOffset32 | 0xFFFFF440 (-3008) Loc: +0x2B84 | offset to vtable
- +0x1FC8 | 00 00 | uint8_t[2] | .. | padding
- +0x1FCA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x1FCB | 0D | uint8_t | 0x0D (13) | table field `element` (Byte)
- +0x1FCC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+ +0x21C4 | 88 F2 FF FF | SOffset32 | 0xFFFFF288 (-3448) Loc: +0x2F3C | offset to vtable
+ +0x21C8 | 00 00 | uint8_t[2] | .. | padding
+ +0x21CA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x21CB | 09 | uint8_t | 0x09 (9) | table field `element` (Byte)
+ +0x21CC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x1FD0 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
- +0x1FD4 | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal
- +0x1FDC | 79 6F 66 73 74 72 69 6E | | yofstrin
- +0x1FE4 | 67 32 | | g2
- +0x1FE6 | 00 | char | 0x00 (0) | string terminator
+ +0x21D0 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string
+ +0x21D4 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal
+ +0x21DC | 66 5F 6C 6F 6E 67 73 | | f_longs
+ +0x21E3 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x1FE8 | AE F5 FF FF | SOffset32 | 0xFFFFF5AE (-2642) Loc: +0x2A3A | offset to vtable
- +0x1FEC | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort)
- +0x1FEE | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort)
- +0x1FF0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2034 | offset to field `name` (string)
- +0x1FF4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2028 | offset to field `type` (table)
- +0x1FF8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2004 | offset to field `attributes` (vector)
- +0x1FFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2000 | offset to field `documentation` (vector)
+ +0x21E4 | 08 F3 FF FF | SOffset32 | 0xFFFFF308 (-3320) Loc: +0x2EDC | offset to vtable
+ +0x21E8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x21EB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x21EC | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort)
+ +0x21EE | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort)
+ +0x21F0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2238 | offset to field `name` (string)
+ +0x21F4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2228 | offset to field `type` (table)
+ +0x21F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2204 | offset to field `attributes` (vector)
+ +0x21FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2200 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2000 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2200 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2004 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2008 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x200C | offset to table[0]
+ +0x2204 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2208 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x220C | offset to table[0]
table (reflection.KeyValue):
- +0x200C | A8 EA FF FF | SOffset32 | 0xFFFFEAA8 (-5464) Loc: +0x3564 | offset to vtable
- +0x2010 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2020 | offset to field `key` (string)
- +0x2014 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2018 | offset to field `value` (string)
+ +0x220C | F0 E8 FF FF | SOffset32 | 0xFFFFE8F0 (-5904) Loc: +0x391C | offset to vtable
+ +0x2210 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2220 | offset to field `key` (string)
+ +0x2214 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2218 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2018 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x201C | 32 37 | char[2] | 27 | string literal
- +0x201E | 00 | char | 0x00 (0) | string terminator
+ +0x2218 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x221C | 33 31 | char[2] | 31 | string literal
+ +0x221E | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2020 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2024 | 69 64 | char[2] | id | string literal
- +0x2026 | 00 | char | 0x00 (0) | string terminator
+ +0x2220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2224 | 69 64 | char[2] | id | string literal
+ +0x2226 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2028 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x399C | offset to vtable
- +0x202C | 00 00 00 | uint8_t[3] | ... | padding
- +0x202F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
- +0x2030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2228 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x2D68 | offset to vtable
+ +0x222C | 00 00 | uint8_t[2] | .. | padding
+ +0x222E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x222F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x2230 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
+ +0x2234 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2034 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
- +0x2038 | 74 65 73 74 66 33 | char[6] | testf3 | string literal
- +0x203E | 00 | char | 0x00 (0) | string terminator
+ +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x223C | 74 65 73 74 35 | char[5] | test5 | string literal
+ +0x2241 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2242 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x2040 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x20A6 | offset to vtable
- +0x2044 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort)
- +0x2046 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort)
- +0x2048 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2098 | offset to field `name` (string)
- +0x204C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x208C | offset to field `type` (table)
- +0x2050 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2068 | offset to field `attributes` (vector)
- +0x2054 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2064 | offset to field `documentation` (vector)
- +0x2058 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double)
- +0x2060 | 00 00 00 00 | uint8_t[4] | .... | padding
+ +0x2244 | 68 F3 FF FF | SOffset32 | 0xFFFFF368 (-3224) Loc: +0x2EDC | offset to vtable
+ +0x2248 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x224C | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort)
+ +0x224E | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort)
+ +0x2250 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x22BC | offset to field `name` (string)
+ +0x2254 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x22B0 | offset to field `type` (table)
+ +0x2258 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2264 | offset to field `attributes` (vector)
+ +0x225C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2260 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2064 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2260 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2068 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x206C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2070 | offset to table[0]
+ +0x2264 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2268 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x228C | offset to table[0]
+ +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to table[1]
table (reflection.KeyValue):
- +0x2070 | 0C EB FF FF | SOffset32 | 0xFFFFEB0C (-5364) Loc: +0x3564 | offset to vtable
- +0x2074 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2084 | offset to field `key` (string)
- +0x2078 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x207C | offset to field `value` (string)
+ +0x2270 | 54 E9 FF FF | SOffset32 | 0xFFFFE954 (-5804) Loc: +0x391C | offset to vtable
+ +0x2274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2284 | offset to field `key` (string)
+ +0x2278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x227C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x207C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2080 | 32 36 | char[2] | 26 | string literal
- +0x2082 | 00 | char | 0x00 (0) | string terminator
+ +0x227C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2280 | 33 30 | char[2] | 30 | string literal
+ +0x2282 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2084 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2088 | 69 64 | char[2] | id | string literal
- +0x208A | 00 | char | 0x00 (0) | string terminator
+ +0x2284 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2288 | 69 64 | char[2] | id | string literal
+ +0x228A | 00 | char | 0x00 (0) | string terminator
-table (reflection.Type):
- +0x208C | F0 E6 FF FF | SOffset32 | 0xFFFFE6F0 (-6416) Loc: +0x399C | offset to vtable
- +0x2090 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2093 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
- +0x2094 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+table (reflection.KeyValue):
+ +0x228C | 70 E9 FF FF | SOffset32 | 0xFFFFE970 (-5776) Loc: +0x391C | offset to vtable
+ +0x2290 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22A0 | offset to field `key` (string)
+ +0x2294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2298 | offset to field `value` (string)
-string (reflection.Field.name):
- +0x2098 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
- +0x209C | 74 65 73 74 66 32 | char[6] | testf2 | string literal
- +0x20A2 | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.value):
+ +0x2298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x229C | 30 | char[1] | 0 | string literal
+ +0x229D | 00 | char | 0x00 (0) | string terminator
padding:
- +0x20A3 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x229E | 00 00 | uint8_t[2] | .. | padding
-vtable (reflection.Field):
- +0x20A6 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x20A8 | 24 00 | uint16_t | 0x0024 (36) | size of referring table
- +0x20AA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x20AC | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x20AE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
- +0x20B0 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x20B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x20B4 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5)
- +0x20B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x20B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x20BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x20BC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x20BE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+string (reflection.KeyValue.key):
+ +0x22A0 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string
+ +0x22A4 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal
+ +0x22AC | 65 72 | | er
+ +0x22AE | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x22B0 | 74 F3 FF FF | SOffset32 | 0xFFFFF374 (-3212) Loc: +0x2F3C | offset to vtable
+ +0x22B4 | 00 00 | uint8_t[2] | .. | padding
+ +0x22B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x22B7 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
+ +0x22B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x22BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x22C0 | 66 6C 65 78 | char[4] | flex | string literal
+ +0x22C4 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x22C5 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x20C0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x20A6 | offset to vtable
- +0x20C4 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort)
- +0x20C6 | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort)
- +0x20C8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2118 | offset to field `name` (string)
- +0x20CC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x210C | offset to field `type` (table)
- +0x20D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x20E8 | offset to field `attributes` (vector)
- +0x20D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x20E4 | offset to field `documentation` (vector)
- +0x20D8 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double)
- +0x20E0 | 00 00 00 00 | uint8_t[4] | .... | padding
+ +0x22C8 | EC F3 FF FF | SOffset32 | 0xFFFFF3EC (-3092) Loc: +0x2EDC | offset to vtable
+ +0x22CC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x22CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x22D0 | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort)
+ +0x22D2 | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort)
+ +0x22D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x231C | offset to field `name` (string)
+ +0x22D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x230C | offset to field `type` (table)
+ +0x22DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x22E8 | offset to field `attributes` (vector)
+ +0x22E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22E4 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x20E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x22E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x20E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x20EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20F0 | offset to table[0]
+ +0x22E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x22EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22F0 | offset to table[0]
table (reflection.KeyValue):
- +0x20F0 | 8C EB FF FF | SOffset32 | 0xFFFFEB8C (-5236) Loc: +0x3564 | offset to vtable
- +0x20F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2104 | offset to field `key` (string)
- +0x20F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20FC | offset to field `value` (string)
+ +0x22F0 | D4 E9 FF FF | SOffset32 | 0xFFFFE9D4 (-5676) Loc: +0x391C | offset to vtable
+ +0x22F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2304 | offset to field `key` (string)
+ +0x22F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22FC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x20FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2100 | 32 35 | char[2] | 25 | string literal
- +0x2102 | 00 | char | 0x00 (0) | string terminator
+ +0x22FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2300 | 32 39 | char[2] | 29 | string literal
+ +0x2302 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2108 | 69 64 | char[2] | id | string literal
- +0x210A | 00 | char | 0x00 (0) | string terminator
+ +0x2304 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2308 | 69 64 | char[2] | id | string literal
+ +0x230A | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x210C | 70 E7 FF FF | SOffset32 | 0xFFFFE770 (-6288) Loc: +0x399C | offset to vtable
- +0x2110 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2113 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
- +0x2114 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x230C | A4 F5 FF FF | SOffset32 | 0xFFFFF5A4 (-2652) Loc: +0x2D68 | offset to vtable
+ +0x2310 | 00 00 | uint8_t[2] | .. | padding
+ +0x2312 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2313 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x2314 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
+ +0x2318 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2118 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x211C | 74 65 73 74 66 | char[5] | testf | string literal
- +0x2121 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2122 | 00 00 | uint8_t[2] | .. | padding
+ +0x231C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string
+ +0x2320 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal
+ +0x2328 | 79 6F 66 73 6F 72 74 65 | | yofsorte
+ +0x2330 | 64 73 74 72 75 63 74 | | dstruct
+ +0x2337 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x2124 | 00 F6 FF FF | SOffset32 | 0xFFFFF600 (-2560) Loc: +0x2B24 | offset to vtable
- +0x2128 | 00 00 00 | uint8_t[3] | ... | padding
- +0x212B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x212C | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort)
- +0x212E | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort)
- +0x2130 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2174 | offset to field `name` (string)
- +0x2134 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2168 | offset to field `type` (table)
- +0x2138 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2144 | offset to field `attributes` (vector)
- +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to field `documentation` (vector)
+ +0x2338 | 5C F4 FF FF | SOffset32 | 0xFFFFF45C (-2980) Loc: +0x2EDC | offset to vtable
+ +0x233C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x233F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2340 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort)
+ +0x2342 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort)
+ +0x2344 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2388 | offset to field `name` (string)
+ +0x2348 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x237C | offset to field `type` (table)
+ +0x234C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2358 | offset to field `attributes` (vector)
+ +0x2350 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2354 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2140 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2354 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2144 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2148 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x214C | offset to table[0]
+ +0x2358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x235C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2360 | offset to table[0]
table (reflection.KeyValue):
- +0x214C | E8 EB FF FF | SOffset32 | 0xFFFFEBE8 (-5144) Loc: +0x3564 | offset to vtable
- +0x2150 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2160 | offset to field `key` (string)
- +0x2154 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2158 | offset to field `value` (string)
+ +0x2360 | 44 EA FF FF | SOffset32 | 0xFFFFEA44 (-5564) Loc: +0x391C | offset to vtable
+ +0x2364 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2374 | offset to field `key` (string)
+ +0x2368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x236C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2158 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x215C | 32 34 | char[2] | 24 | string literal
- +0x215E | 00 | char | 0x00 (0) | string terminator
+ +0x236C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2370 | 32 38 | char[2] | 28 | string literal
+ +0x2372 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2160 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2164 | 69 64 | char[2] | id | string literal
- +0x2166 | 00 | char | 0x00 (0) | string terminator
+ +0x2374 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2378 | 69 64 | char[2] | id | string literal
+ +0x237A | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2168 | E4 F5 FF FF | SOffset32 | 0xFFFFF5E4 (-2588) Loc: +0x2B84 | offset to vtable
- +0x216C | 00 00 | uint8_t[2] | .. | padding
- +0x216E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x216F | 02 | uint8_t | 0x02 (2) | table field `element` (Byte)
- +0x2170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x237C | 40 F4 FF FF | SOffset32 | 0xFFFFF440 (-3008) Loc: +0x2F3C | offset to vtable
+ +0x2380 | 00 00 | uint8_t[2] | .. | padding
+ +0x2382 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2383 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte)
+ +0x2384 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2174 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x2178 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal
- +0x2180 | 79 6F 66 62 6F 6F 6C 73 | | yofbools
- +0x2188 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2189 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2388 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
+ +0x238C | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal
+ +0x2394 | 79 6F 66 73 74 72 69 6E | | yofstrin
+ +0x239C | 67 32 | | g2
+ +0x239E | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x218C | 52 F7 FF FF | SOffset32 | 0xFFFFF752 (-2222) Loc: +0x2A3A | offset to vtable
- +0x2190 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort)
- +0x2192 | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort)
- +0x2194 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2208 | offset to field `name` (string)
- +0x2198 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x21F8 | offset to field `type` (table)
- +0x219C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x21A8 | offset to field `attributes` (vector)
- +0x21A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A4 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x21A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x21A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x21AC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x21D0 | offset to table[0]
- +0x21B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21B4 | offset to table[1]
-
-table (reflection.KeyValue):
- +0x21B4 | 50 EC FF FF | SOffset32 | 0xFFFFEC50 (-5040) Loc: +0x3564 | offset to vtable
- +0x21B8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21C8 | offset to field `key` (string)
- +0x21BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21C0 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x21C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x21C4 | 32 33 | char[2] | 23 | string literal
- +0x21C6 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x21C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x21CC | 69 64 | char[2] | id | string literal
- +0x21CE | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x21D0 | 6C EC FF FF | SOffset32 | 0xFFFFEC6C (-5012) Loc: +0x3564 | offset to vtable
- +0x21D4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x21EC | offset to field `key` (string)
- +0x21D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21DC | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x21DC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x21E0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x21E8 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x21E9 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x21EC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x21F0 | 68 61 73 68 | char[4] | hash | string literal
- +0x21F4 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x21F5 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.Type):
- +0x21F8 | 14 EB FF FF | SOffset32 | 0xFFFFEB14 (-5356) Loc: +0x36E4 | offset to vtable
- +0x21FC | 00 00 00 | uint8_t[3] | ... | padding
- +0x21FF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x2200 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x2204 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x2208 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x220C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
- +0x2214 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1
- +0x221C | 61 | | a
- +0x221D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x221E | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x2220 | E6 F7 FF FF | SOffset32 | 0xFFFFF7E6 (-2074) Loc: +0x2A3A | offset to vtable
- +0x2224 | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort)
- +0x2226 | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort)
- +0x2228 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x229C | offset to field `name` (string)
- +0x222C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x228C | offset to field `type` (table)
- +0x2230 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x223C | offset to field `attributes` (vector)
- +0x2234 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2238 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x2238 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x223C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x2240 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2264 | offset to table[0]
- +0x2244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2248 | offset to table[1]
-
-table (reflection.KeyValue):
- +0x2248 | E4 EC FF FF | SOffset32 | 0xFFFFECE4 (-4892) Loc: +0x3564 | offset to vtable
- +0x224C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x225C | offset to field `key` (string)
- +0x2250 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2254 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2254 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2258 | 32 32 | char[2] | 22 | string literal
- +0x225A | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x225C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2260 | 69 64 | char[2] | id | string literal
- +0x2262 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x2264 | 00 ED FF FF | SOffset32 | 0xFFFFED00 (-4864) Loc: +0x3564 | offset to vtable
- +0x2268 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2280 | offset to field `key` (string)
- +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2270 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x2274 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x227C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x227D | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x2280 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2284 | 68 61 73 68 | char[4] | hash | string literal
- +0x2288 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2289 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.Type):
- +0x228C | A8 EB FF FF | SOffset32 | 0xFFFFEBA8 (-5208) Loc: +0x36E4 | offset to vtable
- +0x2290 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2293 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
- +0x2294 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x2298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x229C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x22A0 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
- +0x22A8 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1
- +0x22B0 | 61 | | a
- +0x22B1 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x22B2 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x22B4 | 7A F8 FF FF | SOffset32 | 0xFFFFF87A (-1926) Loc: +0x2A3A | offset to vtable
- +0x22B8 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort)
- +0x22BA | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort)
- +0x22BC | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x2388 | offset to field `name` (string)
- +0x22C0 | BC 00 00 00 | UOffset32 | 0x000000BC (188) Loc: +0x237C | offset to field `type` (table)
- +0x22C4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x22D0 | offset to field `attributes` (vector)
- +0x22C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22CC | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x22CC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x22D0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
- +0x22D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2350 | offset to table[0]
- +0x22D8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2328 | offset to table[1]
- +0x22DC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2300 | offset to table[2]
- +0x22E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22E4 | offset to table[3]
-
-table (reflection.KeyValue):
- +0x22E4 | 80 ED FF FF | SOffset32 | 0xFFFFED80 (-4736) Loc: +0x3564 | offset to vtable
- +0x22E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22F8 | offset to field `key` (string)
- +0x22EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22F0 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x22F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x22F4 | 32 31 | char[2] | 21 | string literal
- +0x22F6 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x22F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x22FC | 69 64 | char[2] | id | string literal
- +0x22FE | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x2300 | 9C ED FF FF | SOffset32 | 0xFFFFED9C (-4708) Loc: +0x3564 | offset to vtable
- +0x2304 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x231C | offset to field `key` (string)
- +0x2308 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x230C | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x230C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x2310 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal
- +0x2318 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2319 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x231C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2320 | 68 61 73 68 | char[4] | hash | string literal
- +0x2324 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2325 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x2328 | C4 ED FF FF | SOffset32 | 0xFFFFEDC4 (-4668) Loc: +0x3564 | offset to vtable
- +0x232C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2340 | offset to field `key` (string)
- +0x2330 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2334 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2334 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2338 | 53 74 61 74 | char[4] | Stat | string literal
- +0x233C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x233D | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x2340 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x2344 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
- +0x234C | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x234D | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x2350 | EC ED FF FF | SOffset32 | 0xFFFFEDEC (-4628) Loc: +0x3564 | offset to vtable
- +0x2354 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2368 | offset to field `key` (string)
- +0x2358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x235C | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x235C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x2360 | 6E 61 6B 65 64 | char[5] | naked | string literal
- +0x2365 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2366 | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x2368 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
- +0x236C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
- +0x2374 | 74 79 70 65 | | type
- +0x2378 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2379 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.Type):
- +0x237C | E0 E9 FF FF | SOffset32 | 0xFFFFE9E0 (-5664) Loc: +0x399C | offset to vtable
- +0x2380 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2383 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
- +0x2384 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x2388 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x238C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
- +0x2394 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1
- +0x239C | 61 | | a
- +0x239D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x239E | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x23A0 | 66 F9 FF FF | SOffset32 | 0xFFFFF966 (-1690) Loc: +0x2A3A | offset to vtable
- +0x23A4 | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort)
- +0x23A6 | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort)
- +0x23A8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2418 | offset to field `name` (string)
- +0x23AC | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x240C | offset to field `type` (table)
+ +0x23A0 | AE F5 FF FF | SOffset32 | 0xFFFFF5AE (-2642) Loc: +0x2DF2 | offset to vtable
+ +0x23A4 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort)
+ +0x23A6 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort)
+ +0x23A8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x23EC | offset to field `name` (string)
+ +0x23AC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x23E0 | offset to field `type` (table)
+0x23B0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x23BC | offset to field `attributes` (vector)
+0x23B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23B8 | offset to field `documentation` (vector)
@@ -3961,300 +3907,307 @@
+0x23B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x23BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x23C0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x23E4 | offset to table[0]
- +0x23C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23C8 | offset to table[1]
+ +0x23BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x23C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23C4 | offset to table[0]
table (reflection.KeyValue):
- +0x23C8 | 64 EE FF FF | SOffset32 | 0xFFFFEE64 (-4508) Loc: +0x3564 | offset to vtable
- +0x23CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23DC | offset to field `key` (string)
- +0x23D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D4 | offset to field `value` (string)
+ +0x23C4 | A8 EA FF FF | SOffset32 | 0xFFFFEAA8 (-5464) Loc: +0x391C | offset to vtable
+ +0x23C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23D8 | offset to field `key` (string)
+ +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D0 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x23D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x23D8 | 32 30 | char[2] | 20 | string literal
- +0x23DA | 00 | char | 0x00 (0) | string terminator
+ +0x23D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x23D4 | 32 37 | char[2] | 27 | string literal
+ +0x23D6 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x23DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x23E0 | 69 64 | char[2] | id | string literal
- +0x23E2 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x23E4 | 80 EE FF FF | SOffset32 | 0xFFFFEE80 (-4480) Loc: +0x3564 | offset to vtable
- +0x23E8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2400 | offset to field `key` (string)
- +0x23EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23F0 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x23F0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x23F4 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal
- +0x23FC | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x23FD | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x2400 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2404 | 68 61 73 68 | char[4] | hash | string literal
- +0x2408 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2409 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x23D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x23DC | 69 64 | char[2] | id | string literal
+ +0x23DE | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x240C | 70 EA FF FF | SOffset32 | 0xFFFFEA70 (-5520) Loc: +0x399C | offset to vtable
- +0x2410 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2413 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
- +0x2414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x23E0 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x3D54 | offset to vtable
+ +0x23E4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x23E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x23E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2418 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x241C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
- +0x2424 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1
- +0x242C | 61 | | a
- +0x242D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x242E | 00 00 | uint8_t[2] | .. | padding
+ +0x23EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
+ +0x23F0 | 74 65 73 74 66 33 | char[6] | testf3 | string literal
+ +0x23F6 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x2430 | F6 F9 FF FF | SOffset32 | 0xFFFFF9F6 (-1546) Loc: +0x2A3A | offset to vtable
- +0x2434 | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort)
- +0x2436 | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort)
- +0x2438 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x24A8 | offset to field `name` (string)
- +0x243C | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2498 | offset to field `type` (table)
- +0x2440 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x244C | offset to field `attributes` (vector)
- +0x2444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2448 | offset to field `documentation` (vector)
+ +0x23F8 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x245E | offset to vtable
+ +0x23FC | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort)
+ +0x23FE | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort)
+ +0x2400 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2450 | offset to field `name` (string)
+ +0x2404 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2444 | offset to field `type` (table)
+ +0x2408 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2420 | offset to field `attributes` (vector)
+ +0x240C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x241C | offset to field `documentation` (vector)
+ +0x2410 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double)
+ +0x2418 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x2448 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x241C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x244C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x2450 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2474 | offset to table[0]
- +0x2454 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2458 | offset to table[1]
+ +0x2420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2424 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2428 | offset to table[0]
table (reflection.KeyValue):
- +0x2458 | F4 EE FF FF | SOffset32 | 0xFFFFEEF4 (-4364) Loc: +0x3564 | offset to vtable
- +0x245C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x246C | offset to field `key` (string)
- +0x2460 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2464 | offset to field `value` (string)
+ +0x2428 | 0C EB FF FF | SOffset32 | 0xFFFFEB0C (-5364) Loc: +0x391C | offset to vtable
+ +0x242C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x243C | offset to field `key` (string)
+ +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2434 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2464 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2468 | 31 39 | char[2] | 19 | string literal
- +0x246A | 00 | char | 0x00 (0) | string terminator
+ +0x2434 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2438 | 32 36 | char[2] | 26 | string literal
+ +0x243A | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x246C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2470 | 69 64 | char[2] | id | string literal
- +0x2472 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x2474 | 10 EF FF FF | SOffset32 | 0xFFFFEF10 (-4336) Loc: +0x3564 | offset to vtable
- +0x2478 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x248C | offset to field `key` (string)
- +0x247C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2480 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2480 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x2484 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal
- +0x248B | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x248C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2490 | 68 61 73 68 | char[4] | hash | string literal
- +0x2494 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2495 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x243C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2440 | 69 64 | char[2] | id | string literal
+ +0x2442 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2498 | B4 ED FF FF | SOffset32 | 0xFFFFEDB4 (-4684) Loc: +0x36E4 | offset to vtable
- +0x249C | 00 00 00 | uint8_t[3] | ... | padding
- +0x249F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x24A0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x24A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2444 | F0 E6 FF FF | SOffset32 | 0xFFFFE6F0 (-6416) Loc: +0x3D54 | offset to vtable
+ +0x2448 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x244B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x244C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x24A8 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x24AC | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
- +0x24B4 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1
- +0x24BC | 00 | char | 0x00 (0) | string terminator
+ +0x2450 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
+ +0x2454 | 74 65 73 74 66 32 | char[6] | testf2 | string literal
+ +0x245A | 00 | char | 0x00 (0) | string terminator
padding:
- +0x24BD | 00 00 00 | uint8_t[3] | ... | padding
+ +0x245B | 00 00 00 | uint8_t[3] | ... | padding
+
+vtable (reflection.Field):
+ +0x245E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x2460 | 24 00 | uint16_t | 0x0024 (36) | size of referring table
+ +0x2462 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x2464 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x2466 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
+ +0x2468 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x246A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x246C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5)
+ +0x246E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x2470 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x2472 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x2474 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x2476 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x24C0 | 86 FA FF FF | SOffset32 | 0xFFFFFA86 (-1402) Loc: +0x2A3A | offset to vtable
- +0x24C4 | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort)
- +0x24C6 | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort)
- +0x24C8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2538 | offset to field `name` (string)
- +0x24CC | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2528 | offset to field `type` (table)
- +0x24D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x24DC | offset to field `attributes` (vector)
- +0x24D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24D8 | offset to field `documentation` (vector)
+ +0x2478 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x245E | offset to vtable
+ +0x247C | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort)
+ +0x247E | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort)
+ +0x2480 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x24D0 | offset to field `name` (string)
+ +0x2484 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x24C4 | offset to field `type` (table)
+ +0x2488 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x24A0 | offset to field `attributes` (vector)
+ +0x248C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x249C | offset to field `documentation` (vector)
+ +0x2490 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double)
+ +0x2498 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x24D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x249C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x24DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x24E0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2504 | offset to table[0]
- +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24E8 | offset to table[1]
+ +0x24A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x24A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24A8 | offset to table[0]
table (reflection.KeyValue):
- +0x24E8 | 84 EF FF FF | SOffset32 | 0xFFFFEF84 (-4220) Loc: +0x3564 | offset to vtable
- +0x24EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24FC | offset to field `key` (string)
- +0x24F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24F4 | offset to field `value` (string)
+ +0x24A8 | 8C EB FF FF | SOffset32 | 0xFFFFEB8C (-5236) Loc: +0x391C | offset to vtable
+ +0x24AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24BC | offset to field `key` (string)
+ +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24B4 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x24F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x24F8 | 31 38 | char[2] | 18 | string literal
- +0x24FA | 00 | char | 0x00 (0) | string terminator
+ +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x24B8 | 32 35 | char[2] | 25 | string literal
+ +0x24BA | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x24FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2500 | 69 64 | char[2] | id | string literal
- +0x2502 | 00 | char | 0x00 (0) | string terminator
+ +0x24BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x24C0 | 69 64 | char[2] | id | string literal
+ +0x24C2 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x24C4 | 70 E7 FF FF | SOffset32 | 0xFFFFE770 (-6288) Loc: +0x3D54 | offset to vtable
+ +0x24C8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x24CB | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x24CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x24D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x24D4 | 74 65 73 74 66 | char[5] | testf | string literal
+ +0x24D9 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x24DA | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x24DC | 00 F6 FF FF | SOffset32 | 0xFFFFF600 (-2560) Loc: +0x2EDC | offset to vtable
+ +0x24E0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x24E3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x24E4 | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort)
+ +0x24E6 | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort)
+ +0x24E8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x252C | offset to field `name` (string)
+ +0x24EC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2520 | offset to field `type` (table)
+ +0x24F0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x24FC | offset to field `attributes` (vector)
+ +0x24F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24F8 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x24F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x24FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2504 | offset to table[0]
table (reflection.KeyValue):
- +0x2504 | A0 EF FF FF | SOffset32 | 0xFFFFEFA0 (-4192) Loc: +0x3564 | offset to vtable
- +0x2508 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x251C | offset to field `key` (string)
+ +0x2504 | E8 EB FF FF | SOffset32 | 0xFFFFEBE8 (-5144) Loc: +0x391C | offset to vtable
+ +0x2508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2518 | offset to field `key` (string)
+0x250C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2510 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2510 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x2514 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal
- +0x251B | 00 | char | 0x00 (0) | string terminator
+ +0x2510 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2514 | 32 34 | char[2] | 24 | string literal
+ +0x2516 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x251C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2520 | 68 61 73 68 | char[4] | hash | string literal
- +0x2524 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2525 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2518 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x251C | 69 64 | char[2] | id | string literal
+ +0x251E | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2528 | 44 EE FF FF | SOffset32 | 0xFFFFEE44 (-4540) Loc: +0x36E4 | offset to vtable
- +0x252C | 00 00 00 | uint8_t[3] | ... | padding
- +0x252F | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
- +0x2530 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x2534 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2520 | E4 F5 FF FF | SOffset32 | 0xFFFFF5E4 (-2588) Loc: +0x2F3C | offset to vtable
+ +0x2524 | 00 00 | uint8_t[2] | .. | padding
+ +0x2526 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2527 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte)
+ +0x2528 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2538 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x253C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
- +0x2544 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1
- +0x254C | 00 | char | 0x00 (0) | string terminator
+ +0x252C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x2530 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal
+ +0x2538 | 79 6F 66 62 6F 6F 6C 73 | | yofbools
+ +0x2540 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x254D | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2541 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x2550 | 16 FB FF FF | SOffset32 | 0xFFFFFB16 (-1258) Loc: +0x2A3A | offset to vtable
- +0x2554 | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort)
- +0x2556 | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort)
- +0x2558 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x25C4 | offset to field `name` (string)
- +0x255C | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x25B8 | offset to field `type` (table)
- +0x2560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x256C | offset to field `attributes` (vector)
- +0x2564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2568 | offset to field `documentation` (vector)
+ +0x2544 | 52 F7 FF FF | SOffset32 | 0xFFFFF752 (-2222) Loc: +0x2DF2 | offset to vtable
+ +0x2548 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort)
+ +0x254A | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort)
+ +0x254C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x25C0 | offset to field `name` (string)
+ +0x2550 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x25B0 | offset to field `type` (table)
+ +0x2554 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2560 | offset to field `attributes` (vector)
+ +0x2558 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x255C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x255C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x256C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x2570 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2594 | offset to table[0]
- +0x2574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2578 | offset to table[1]
+ +0x2560 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2564 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2588 | offset to table[0]
+ +0x2568 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x256C | offset to table[1]
table (reflection.KeyValue):
- +0x2578 | 14 F0 FF FF | SOffset32 | 0xFFFFF014 (-4076) Loc: +0x3564 | offset to vtable
- +0x257C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x258C | offset to field `key` (string)
- +0x2580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2584 | offset to field `value` (string)
+ +0x256C | 50 EC FF FF | SOffset32 | 0xFFFFEC50 (-5040) Loc: +0x391C | offset to vtable
+ +0x2570 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2580 | offset to field `key` (string)
+ +0x2574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2578 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2584 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2588 | 31 37 | char[2] | 17 | string literal
- +0x258A | 00 | char | 0x00 (0) | string terminator
+ +0x2578 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x257C | 32 33 | char[2] | 23 | string literal
+ +0x257E | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x258C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2590 | 69 64 | char[2] | id | string literal
- +0x2592 | 00 | char | 0x00 (0) | string terminator
+ +0x2580 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2584 | 69 64 | char[2] | id | string literal
+ +0x2586 | 00 | char | 0x00 (0) | string terminator
table (reflection.KeyValue):
- +0x2594 | 30 F0 FF FF | SOffset32 | 0xFFFFF030 (-4048) Loc: +0x3564 | offset to vtable
- +0x2598 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x25AC | offset to field `key` (string)
- +0x259C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25A0 | offset to field `value` (string)
+ +0x2588 | 6C EC FF FF | SOffset32 | 0xFFFFEC6C (-5012) Loc: +0x391C | offset to vtable
+ +0x258C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x25A4 | offset to field `key` (string)
+ +0x2590 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2594 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x25A0 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x25A4 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal
- +0x25AB | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x25AC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x25B0 | 68 61 73 68 | char[4] | hash | string literal
- +0x25B4 | 00 | char | 0x00 (0) | string terminator
+ +0x2594 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x2598 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x25A0 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x25B5 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x25A1 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x25A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x25A8 | 68 61 73 68 | char[4] | hash | string literal
+ +0x25AC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x25AD | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Type):
- +0x25B8 | 1C EC FF FF | SOffset32 | 0xFFFFEC1C (-5092) Loc: +0x399C | offset to vtable
- +0x25BC | 00 00 00 | uint8_t[3] | ... | padding
- +0x25BF | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
- +0x25C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x25B0 | 14 EB FF FF | SOffset32 | 0xFFFFEB14 (-5356) Loc: +0x3A9C | offset to vtable
+ +0x25B4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x25B7 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x25B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x25BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x25C4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x25C8 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
- +0x25D0 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1
- +0x25D8 | 00 | char | 0x00 (0) | string terminator
+ +0x25C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x25C4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
+ +0x25CC | 75 36 34 5F 66 6E 76 31 | | u64_fnv1
+ +0x25D4 | 61 | | a
+ +0x25D5 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x25D9 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x25D6 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x25DC | A2 FB FF FF | SOffset32 | 0xFFFFFBA2 (-1118) Loc: +0x2A3A | offset to vtable
- +0x25E0 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort)
- +0x25E2 | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort)
- +0x25E4 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2650 | offset to field `name` (string)
- +0x25E8 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2644 | offset to field `type` (table)
- +0x25EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x25F8 | offset to field `attributes` (vector)
- +0x25F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F4 | offset to field `documentation` (vector)
+ +0x25D8 | E6 F7 FF FF | SOffset32 | 0xFFFFF7E6 (-2074) Loc: +0x2DF2 | offset to vtable
+ +0x25DC | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort)
+ +0x25DE | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort)
+ +0x25E0 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2654 | offset to field `name` (string)
+ +0x25E4 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2644 | offset to field `type` (table)
+ +0x25E8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x25F4 | offset to field `attributes` (vector)
+ +0x25EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F0 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x25F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x25F0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x25F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x25FC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2620 | offset to table[0]
- +0x2600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2604 | offset to table[1]
+ +0x25F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x25F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x261C | offset to table[0]
+ +0x25FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2600 | offset to table[1]
table (reflection.KeyValue):
- +0x2604 | A0 F0 FF FF | SOffset32 | 0xFFFFF0A0 (-3936) Loc: +0x3564 | offset to vtable
- +0x2608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2618 | offset to field `key` (string)
- +0x260C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2610 | offset to field `value` (string)
+ +0x2600 | E4 EC FF FF | SOffset32 | 0xFFFFECE4 (-4892) Loc: +0x391C | offset to vtable
+ +0x2604 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2614 | offset to field `key` (string)
+ +0x2608 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x260C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2610 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2614 | 31 36 | char[2] | 16 | string literal
- +0x2616 | 00 | char | 0x00 (0) | string terminator
+ +0x260C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2610 | 32 32 | char[2] | 22 | string literal
+ +0x2612 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x261C | 69 64 | char[2] | id | string literal
- +0x261E | 00 | char | 0x00 (0) | string terminator
+ +0x2614 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2618 | 69 64 | char[2] | id | string literal
+ +0x261A | 00 | char | 0x00 (0) | string terminator
table (reflection.KeyValue):
- +0x2620 | BC F0 FF FF | SOffset32 | 0xFFFFF0BC (-3908) Loc: +0x3564 | offset to vtable
- +0x2624 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2638 | offset to field `key` (string)
- +0x2628 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x262C | offset to field `value` (string)
+ +0x261C | 00 ED FF FF | SOffset32 | 0xFFFFED00 (-4864) Loc: +0x391C | offset to vtable
+ +0x2620 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2638 | offset to field `key` (string)
+ +0x2624 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2628 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x262C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x2630 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal
- +0x2637 | 00 | char | 0x00 (0) | string terminator
+ +0x2628 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x262C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x2634 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2635 | 00 00 00 | uint8_t[3] | ... | padding
string (reflection.KeyValue.key):
+0x2638 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
@@ -4265,318 +4218,343 @@
+0x2641 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Type):
- +0x2644 | A8 EC FF FF | SOffset32 | 0xFFFFECA8 (-4952) Loc: +0x399C | offset to vtable
+ +0x2644 | A8 EB FF FF | SOffset32 | 0xFFFFEBA8 (-5208) Loc: +0x3A9C | offset to vtable
+0x2648 | 00 00 00 | uint8_t[3] | ... | padding
- +0x264B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
- +0x264C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x264B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
+ +0x264C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x2650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2650 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
- +0x2654 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
- +0x265C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1
- +0x2664 | 00 | char | 0x00 (0) | string terminator
+ +0x2654 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x2658 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
+ +0x2660 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1
+ +0x2668 | 61 | | a
+ +0x2669 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2665 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x266A | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x2668 | 2E FC FF FF | SOffset32 | 0xFFFFFC2E (-978) Loc: +0x2A3A | offset to vtable
- +0x266C | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort)
- +0x266E | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort)
- +0x2670 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x26B8 | offset to field `name` (string)
- +0x2674 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x26A8 | offset to field `type` (table)
- +0x2678 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2684 | offset to field `attributes` (vector)
- +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2680 | offset to field `documentation` (vector)
+ +0x266C | 7A F8 FF FF | SOffset32 | 0xFFFFF87A (-1926) Loc: +0x2DF2 | offset to vtable
+ +0x2670 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort)
+ +0x2672 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort)
+ +0x2674 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x2740 | offset to field `name` (string)
+ +0x2678 | BC 00 00 00 | UOffset32 | 0x000000BC (188) Loc: +0x2734 | offset to field `type` (table)
+ +0x267C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2688 | offset to field `attributes` (vector)
+ +0x2680 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2684 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2680 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2684 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2684 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2688 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x268C | offset to table[0]
+ +0x2688 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items)
+ +0x268C | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2708 | offset to table[0]
+ +0x2690 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x26E0 | offset to table[1]
+ +0x2694 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x26B8 | offset to table[2]
+ +0x2698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x269C | offset to table[3]
table (reflection.KeyValue):
- +0x268C | 28 F1 FF FF | SOffset32 | 0xFFFFF128 (-3800) Loc: +0x3564 | offset to vtable
- +0x2690 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26A0 | offset to field `key` (string)
- +0x2694 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2698 | offset to field `value` (string)
+ +0x269C | 80 ED FF FF | SOffset32 | 0xFFFFED80 (-4736) Loc: +0x391C | offset to vtable
+ +0x26A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26B0 | offset to field `key` (string)
+ +0x26A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26A8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2698 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x269C | 31 35 | char[2] | 15 | string literal
- +0x269E | 00 | char | 0x00 (0) | string terminator
+ +0x26A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x26AC | 32 31 | char[2] | 21 | string literal
+ +0x26AE | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x26A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x26A4 | 69 64 | char[2] | id | string literal
- +0x26A6 | 00 | char | 0x00 (0) | string terminator
+ +0x26B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x26B4 | 69 64 | char[2] | id | string literal
+ +0x26B6 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.KeyValue):
+ +0x26B8 | 9C ED FF FF | SOffset32 | 0xFFFFED9C (-4708) Loc: +0x391C | offset to vtable
+ +0x26BC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x26D4 | offset to field `key` (string)
+ +0x26C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26C4 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x26C4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x26C8 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal
+ +0x26D0 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x26D1 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x26D4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x26D8 | 68 61 73 68 | char[4] | hash | string literal
+ +0x26DC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x26DD | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x26E0 | C4 ED FF FF | SOffset32 | 0xFFFFEDC4 (-4668) Loc: +0x391C | offset to vtable
+ +0x26E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x26F8 | offset to field `key` (string)
+ +0x26E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26EC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x26EC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x26F0 | 53 74 61 74 | char[4] | Stat | string literal
+ +0x26F4 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x26F5 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x26F8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x26FC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal
+ +0x2704 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2705 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x2708 | EC ED FF FF | SOffset32 | 0xFFFFEDEC (-4628) Loc: +0x391C | offset to vtable
+ +0x270C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2720 | offset to field `key` (string)
+ +0x2710 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2714 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x2714 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x2718 | 6E 61 6B 65 64 | char[5] | naked | string literal
+ +0x271D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x271E | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x2720 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string
+ +0x2724 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal
+ +0x272C | 74 79 70 65 | | type
+ +0x2730 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2731 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Type):
- +0x26A8 | C4 EF FF FF | SOffset32 | 0xFFFFEFC4 (-4156) Loc: +0x36E4 | offset to vtable
- +0x26AC | 00 00 00 | uint8_t[3] | ... | padding
- +0x26AF | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte)
- +0x26B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x26B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2734 | E0 E9 FF FF | SOffset32 | 0xFFFFE9E0 (-5664) Loc: +0x3D54 | offset to vtable
+ +0x2738 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x273B | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
+ +0x273C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x26B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x26BC | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal
- +0x26C4 | 00 | char | 0x00 (0) | string terminator
+ +0x2740 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x2744 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
+ +0x274C | 75 33 32 5F 66 6E 76 31 | | u32_fnv1
+ +0x2754 | 61 | | a
+ +0x2755 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x26C5 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2756 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x26C8 | A4 FB FF FF | SOffset32 | 0xFFFFFBA4 (-1116) Loc: +0x2B24 | offset to vtable
- +0x26CC | 00 00 00 | uint8_t[3] | ... | padding
- +0x26CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x26D0 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort)
- +0x26D2 | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort)
- +0x26D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x271C | offset to field `name` (string)
- +0x26D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x270C | offset to field `type` (table)
- +0x26DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x26E8 | offset to field `attributes` (vector)
- +0x26E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26E4 | offset to field `documentation` (vector)
+ +0x2758 | 66 F9 FF FF | SOffset32 | 0xFFFFF966 (-1690) Loc: +0x2DF2 | offset to vtable
+ +0x275C | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort)
+ +0x275E | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort)
+ +0x2760 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x27D0 | offset to field `name` (string)
+ +0x2764 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x27C4 | offset to field `type` (table)
+ +0x2768 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2774 | offset to field `attributes` (vector)
+ +0x276C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2770 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x26E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2770 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x26E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x26EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26F0 | offset to table[0]
+ +0x2774 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2778 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x279C | offset to table[0]
+ +0x277C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2780 | offset to table[1]
table (reflection.KeyValue):
- +0x26F0 | 8C F1 FF FF | SOffset32 | 0xFFFFF18C (-3700) Loc: +0x3564 | offset to vtable
- +0x26F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2704 | offset to field `key` (string)
- +0x26F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26FC | offset to field `value` (string)
+ +0x2780 | 64 EE FF FF | SOffset32 | 0xFFFFEE64 (-4508) Loc: +0x391C | offset to vtable
+ +0x2784 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2794 | offset to field `key` (string)
+ +0x2788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x278C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x26FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2700 | 31 34 | char[2] | 14 | string literal
- +0x2702 | 00 | char | 0x00 (0) | string terminator
+ +0x278C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2790 | 32 30 | char[2] | 20 | string literal
+ +0x2792 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2704 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2708 | 69 64 | char[2] | id | string literal
- +0x270A | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x270C | 54 EE FF FF | SOffset32 | 0xFFFFEE54 (-4524) Loc: +0x38B8 | offset to vtable
- +0x2710 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2713 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x2714 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
- +0x2718 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x271C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string
- +0x2720 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal
- +0x2728 | 79 | | y
- +0x2729 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x272A | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x272C | 08 FC FF FF | SOffset32 | 0xFFFFFC08 (-1016) Loc: +0x2B24 | offset to vtable
- +0x2730 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2733 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x2734 | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort)
- +0x2736 | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort)
- +0x2738 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x27B0 | offset to field `name` (string)
- +0x273C | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x27A4 | offset to field `type` (table)
- +0x2740 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x274C | offset to field `attributes` (vector)
- +0x2744 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2748 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x2748 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x274C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x2750 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2788 | offset to table[0]
- +0x2754 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2758 | offset to table[1]
-
-table (reflection.KeyValue):
- +0x2758 | F4 F1 FF FF | SOffset32 | 0xFFFFF1F4 (-3596) Loc: +0x3564 | offset to vtable
- +0x275C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2770 | offset to field `key` (string)
- +0x2760 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2764 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2764 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x2768 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal
- +0x276F | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x2770 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x2774 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal
- +0x277C | 6C 61 74 62 75 66 66 65 | | latbuffe
- +0x2784 | 72 | | r
- +0x2785 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2786 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.KeyValue):
- +0x2788 | 24 F2 FF FF | SOffset32 | 0xFFFFF224 (-3548) Loc: +0x3564 | offset to vtable
- +0x278C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x279C | offset to field `key` (string)
- +0x2790 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2794 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
+0x2794 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2798 | 31 33 | char[2] | 13 | string literal
+ +0x2798 | 69 64 | char[2] | id | string literal
+0x279A | 00 | char | 0x00 (0) | string terminator
-string (reflection.KeyValue.key):
- +0x279C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x27A0 | 69 64 | char[2] | id | string literal
- +0x27A2 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x27A4 | 20 FC FF FF | SOffset32 | 0xFFFFFC20 (-992) Loc: +0x2B84 | offset to vtable
- +0x27A8 | 00 00 | uint8_t[2] | .. | padding
- +0x27AA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x27AB | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
- +0x27AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x27B0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string
- +0x27B4 | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal
- +0x27BC | 65 64 66 6C 61 74 62 75 | | edflatbu
- +0x27C4 | 66 66 65 72 | | ffer
- +0x27C8 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x27C9 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.Field):
- +0x27CC | A8 FC FF FF | SOffset32 | 0xFFFFFCA8 (-856) Loc: +0x2B24 | offset to vtable
- +0x27D0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x27D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x27D4 | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort)
- +0x27D6 | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort)
- +0x27D8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2820 | offset to field `name` (string)
- +0x27DC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2810 | offset to field `type` (table)
- +0x27E0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x27EC | offset to field `attributes` (vector)
- +0x27E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27E8 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x27E8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x27EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x27F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27F4 | offset to table[0]
-
table (reflection.KeyValue):
- +0x27F4 | 90 F2 FF FF | SOffset32 | 0xFFFFF290 (-3440) Loc: +0x3564 | offset to vtable
- +0x27F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2808 | offset to field `key` (string)
- +0x27FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2800 | offset to field `value` (string)
+ +0x279C | 80 EE FF FF | SOffset32 | 0xFFFFEE80 (-4480) Loc: +0x391C | offset to vtable
+ +0x27A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x27B8 | offset to field `key` (string)
+ +0x27A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27A8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2800 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2804 | 31 32 | char[2] | 12 | string literal
- +0x2806 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.KeyValue.key):
- +0x2808 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x280C | 69 64 | char[2] | id | string literal
- +0x280E | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x2810 | 58 EF FF FF | SOffset32 | 0xFFFFEF58 (-4264) Loc: +0x38B8 | offset to vtable
- +0x2814 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2817 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x2818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
- +0x281C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x2820 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x2824 | 65 6E 65 6D 79 | char[5] | enemy | string literal
- +0x2829 | 00 | char | 0x00 (0) | string terminator
+ +0x27A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x27AC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal
+ +0x27B4 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x282A | 00 00 | uint8_t[2] | .. | padding
+ +0x27B5 | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x27B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x27BC | 68 61 73 68 | char[4] | hash | string literal
+ +0x27C0 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x27C1 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x27C4 | 70 EA FF FF | SOffset32 | 0xFFFFEA70 (-5520) Loc: +0x3D54 | offset to vtable
+ +0x27C8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x27CB | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
+ +0x27CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x27D0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x27D4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal
+ +0x27DC | 73 33 32 5F 66 6E 76 31 | | s32_fnv1
+ +0x27E4 | 61 | | a
+ +0x27E5 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x27E6 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x282C | 08 FD FF FF | SOffset32 | 0xFFFFFD08 (-760) Loc: +0x2B24 | offset to vtable
- +0x2830 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2833 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x2834 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort)
- +0x2836 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort)
- +0x2838 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x28EC | offset to field `name` (string)
- +0x283C | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x28DC | offset to field `type` (table)
- +0x2840 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x28B8 | offset to field `attributes` (vector)
- +0x2844 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2848 | offset to field `documentation` (vector)
+ +0x27E8 | F6 F9 FF FF | SOffset32 | 0xFFFFF9F6 (-1546) Loc: +0x2DF2 | offset to vtable
+ +0x27EC | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort)
+ +0x27EE | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort)
+ +0x27F0 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2860 | offset to field `name` (string)
+ +0x27F4 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2850 | offset to field `type` (table)
+ +0x27F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2804 | offset to field `attributes` (vector)
+ +0x27FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2800 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2848 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x284C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x2868 | offset to string[0]
- +0x2850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2854 | offset to string[1]
-
-string (reflection.Field.documentation):
- +0x2854 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string
- +0x2858 | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal
- +0x2860 | 6E 65 20 74 6F 6F | | ne too
- +0x2866 | 00 | char | 0x00 (0) | string terminator
-
-string (reflection.Field.documentation):
- +0x2868 | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string
- +0x286C | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal
- +0x2874 | 70 6C 65 20 64 6F 63 75 | | ple docu
- +0x287C | 6D 65 6E 74 61 74 69 6F | | mentatio
- +0x2884 | 6E 20 63 6F 6D 6D 65 6E | | n commen
- +0x288C | 74 3A 20 74 68 69 73 20 | | t: this
- +0x2894 | 77 69 6C 6C 20 65 6E 64 | | will end
- +0x289C | 20 75 70 20 69 6E 20 74 | | up in t
- +0x28A4 | 68 65 20 67 65 6E 65 72 | | he gener
- +0x28AC | 61 74 65 64 20 63 6F 64 | | ated cod
- +0x28B4 | 65 | | e
- +0x28B5 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x28B6 | 00 00 | uint8_t[2] | .. | padding
+ +0x2800 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x28B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x28BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28C0 | offset to table[0]
+ +0x2804 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2808 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x282C | offset to table[0]
+ +0x280C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2810 | offset to table[1]
table (reflection.KeyValue):
- +0x28C0 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x3564 | offset to vtable
- +0x28C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28D4 | offset to field `key` (string)
- +0x28C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28CC | offset to field `value` (string)
+ +0x2810 | F4 EE FF FF | SOffset32 | 0xFFFFEEF4 (-4364) Loc: +0x391C | offset to vtable
+ +0x2814 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2824 | offset to field `key` (string)
+ +0x2818 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x281C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x28CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x28D0 | 31 31 | char[2] | 11 | string literal
- +0x28D2 | 00 | char | 0x00 (0) | string terminator
+ +0x281C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2820 | 31 39 | char[2] | 19 | string literal
+ +0x2822 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x28D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x28D8 | 69 64 | char[2] | id | string literal
- +0x28DA | 00 | char | 0x00 (0) | string terminator
+ +0x2824 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2828 | 69 64 | char[2] | id | string literal
+ +0x282A | 00 | char | 0x00 (0) | string terminator
-table (reflection.Type):
- +0x28DC | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x29B0 | offset to vtable
- +0x28E0 | 00 00 | uint8_t[2] | .. | padding
- +0x28E2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x28E3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x28E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
- +0x28E8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+table (reflection.KeyValue):
+ +0x282C | 10 EF FF FF | SOffset32 | 0xFFFFEF10 (-4336) Loc: +0x391C | offset to vtable
+ +0x2830 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2844 | offset to field `key` (string)
+ +0x2834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2838 | offset to field `value` (string)
-string (reflection.Field.name):
- +0x28EC | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x28F0 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal
- +0x28F8 | 79 6F 66 74 61 62 6C 65 | | yoftable
- +0x2900 | 73 | | s
- +0x2901 | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.value):
+ +0x2838 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x283C | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal
+ +0x2843 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x2844 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x2848 | 68 61 73 68 | char[4] | hash | string literal
+ +0x284C | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2902 | 00 00 | uint8_t[2] | .. | padding
+ +0x284D | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x2850 | B4 ED FF FF | SOffset32 | 0xFFFFEDB4 (-4684) Loc: +0x3A9C | offset to vtable
+ +0x2854 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2857 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x2858 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x285C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x2860 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x2864 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
+ +0x286C | 75 36 34 5F 66 6E 76 31 | | u64_fnv1
+ +0x2874 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2875 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x2904 | E0 FD FF FF | SOffset32 | 0xFFFFFDE0 (-544) Loc: +0x2B24 | offset to vtable
- +0x2908 | 00 00 00 | uint8_t[3] | ... | padding
- +0x290B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x290C | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort)
- +0x290E | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort)
- +0x2910 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2954 | offset to field `name` (string)
- +0x2914 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2948 | offset to field `type` (table)
+ +0x2878 | 86 FA FF FF | SOffset32 | 0xFFFFFA86 (-1402) Loc: +0x2DF2 | offset to vtable
+ +0x287C | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort)
+ +0x287E | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort)
+ +0x2880 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x28F0 | offset to field `name` (string)
+ +0x2884 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x28E0 | offset to field `type` (table)
+ +0x2888 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2894 | offset to field `attributes` (vector)
+ +0x288C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2890 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x2890 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x2894 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2898 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x28BC | offset to table[0]
+ +0x289C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28A0 | offset to table[1]
+
+table (reflection.KeyValue):
+ +0x28A0 | 84 EF FF FF | SOffset32 | 0xFFFFEF84 (-4220) Loc: +0x391C | offset to vtable
+ +0x28A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28B4 | offset to field `key` (string)
+ +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28AC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x28AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x28B0 | 31 38 | char[2] | 18 | string literal
+ +0x28B2 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x28B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x28B8 | 69 64 | char[2] | id | string literal
+ +0x28BA | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.KeyValue):
+ +0x28BC | A0 EF FF FF | SOffset32 | 0xFFFFEFA0 (-4192) Loc: +0x391C | offset to vtable
+ +0x28C0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x28D4 | offset to field `key` (string)
+ +0x28C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28C8 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x28C8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x28CC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal
+ +0x28D3 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x28D4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x28D8 | 68 61 73 68 | char[4] | hash | string literal
+ +0x28DC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x28DD | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x28E0 | 44 EE FF FF | SOffset32 | 0xFFFFEE44 (-4540) Loc: +0x3A9C | offset to vtable
+ +0x28E4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x28E7 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
+ +0x28E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x28EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x28F0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x28F4 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
+ +0x28FC | 73 36 34 5F 66 6E 76 31 | | s64_fnv1
+ +0x2904 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2905 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Field):
+ +0x2908 | 16 FB FF FF | SOffset32 | 0xFFFFFB16 (-1258) Loc: +0x2DF2 | offset to vtable
+ +0x290C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort)
+ +0x290E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort)
+ +0x2910 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x297C | offset to field `name` (string)
+ +0x2914 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2970 | offset to field `type` (table)
+0x2918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2924 | offset to field `attributes` (vector)
+0x291C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2920 | offset to field `documentation` (vector)
@@ -4584,1256 +4562,1236 @@
+0x2920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2924 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2928 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x292C | offset to table[0]
+ +0x2924 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2928 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x294C | offset to table[0]
+ +0x292C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2930 | offset to table[1]
table (reflection.KeyValue):
- +0x292C | C8 F3 FF FF | SOffset32 | 0xFFFFF3C8 (-3128) Loc: +0x3564 | offset to vtable
- +0x2930 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2940 | offset to field `key` (string)
- +0x2934 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2938 | offset to field `value` (string)
+ +0x2930 | 14 F0 FF FF | SOffset32 | 0xFFFFF014 (-4076) Loc: +0x391C | offset to vtable
+ +0x2934 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2944 | offset to field `key` (string)
+ +0x2938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x293C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2938 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x293C | 31 30 | char[2] | 10 | string literal
- +0x293E | 00 | char | 0x00 (0) | string terminator
+ +0x293C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2940 | 31 37 | char[2] | 17 | string literal
+ +0x2942 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2940 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2944 | 69 64 | char[2] | id | string literal
- +0x2946 | 00 | char | 0x00 (0) | string terminator
+ +0x2944 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2948 | 69 64 | char[2] | id | string literal
+ +0x294A | 00 | char | 0x00 (0) | string terminator
-table (reflection.Type):
- +0x2948 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x2B84 | offset to vtable
- +0x294C | 00 00 | uint8_t[2] | .. | padding
- +0x294E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x294F | 0D | uint8_t | 0x0D (13) | table field `element` (Byte)
- +0x2950 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+table (reflection.KeyValue):
+ +0x294C | 30 F0 FF FF | SOffset32 | 0xFFFFF030 (-4048) Loc: +0x391C | offset to vtable
+ +0x2950 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2964 | offset to field `key` (string)
+ +0x2954 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2958 | offset to field `value` (string)
-string (reflection.Field.name):
- +0x2954 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
- +0x2958 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal
- +0x2960 | 79 6F 66 73 74 72 69 6E | | yofstrin
- +0x2968 | 67 | | g
- +0x2969 | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.value):
+ +0x2958 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x295C | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal
+ +0x2963 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x2964 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x2968 | 68 61 73 68 | char[4] | hash | string literal
+ +0x296C | 00 | char | 0x00 (0) | string terminator
padding:
- +0x296A | 00 00 | uint8_t[2] | .. | padding
+ +0x296D | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x2970 | 1C EC FF FF | SOffset32 | 0xFFFFEC1C (-5092) Loc: +0x3D54 | offset to vtable
+ +0x2974 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2977 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
+ +0x2978 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x297C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x2980 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
+ +0x2988 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1
+ +0x2990 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2991 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x296C | 48 FE FF FF | SOffset32 | 0xFFFFFE48 (-440) Loc: +0x2B24 | offset to vtable
- +0x2970 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2973 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x2974 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort)
- +0x2976 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort)
- +0x2978 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x29D0 | offset to field `name` (string)
- +0x297C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x29C0 | offset to field `type` (table)
- +0x2980 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x298C | offset to field `attributes` (vector)
- +0x2984 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2988 | offset to field `documentation` (vector)
+ +0x2994 | A2 FB FF FF | SOffset32 | 0xFFFFFBA2 (-1118) Loc: +0x2DF2 | offset to vtable
+ +0x2998 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort)
+ +0x299A | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort)
+ +0x299C | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2A08 | offset to field `name` (string)
+ +0x29A0 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x29FC | offset to field `type` (table)
+ +0x29A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x29B0 | offset to field `attributes` (vector)
+ +0x29A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29AC | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2988 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x29AC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x298C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2990 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2994 | offset to table[0]
+ +0x29B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x29B4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x29D8 | offset to table[0]
+ +0x29B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29BC | offset to table[1]
table (reflection.KeyValue):
- +0x2994 | 30 F4 FF FF | SOffset32 | 0xFFFFF430 (-3024) Loc: +0x3564 | offset to vtable
- +0x2998 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29A8 | offset to field `key` (string)
- +0x299C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29A0 | offset to field `value` (string)
+ +0x29BC | A0 F0 FF FF | SOffset32 | 0xFFFFF0A0 (-3936) Loc: +0x391C | offset to vtable
+ +0x29C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29D0 | offset to field `key` (string)
+ +0x29C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29C8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x29A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x29A4 | 39 | char[1] | 9 | string literal
- +0x29A5 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x29A6 | 00 00 | uint8_t[2] | .. | padding
+ +0x29C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x29CC | 31 36 | char[2] | 16 | string literal
+ +0x29CE | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x29A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x29AC | 69 64 | char[2] | id | string literal
- +0x29AE | 00 | char | 0x00 (0) | string terminator
+ +0x29D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x29D4 | 69 64 | char[2] | id | string literal
+ +0x29D6 | 00 | char | 0x00 (0) | string terminator
-vtable (reflection.Type):
- +0x29B0 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
- +0x29B2 | 10 00 | uint16_t | 0x0010 (16) | size of referring table
- +0x29B4 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0)
- +0x29B6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1)
- +0x29B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2)
- +0x29BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
- +0x29BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
- +0x29BE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5)
+table (reflection.KeyValue):
+ +0x29D8 | BC F0 FF FF | SOffset32 | 0xFFFFF0BC (-3908) Loc: +0x391C | offset to vtable
+ +0x29DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x29F0 | offset to field `key` (string)
+ +0x29E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29E4 | offset to field `value` (string)
-table (reflection.Type):
- +0x29C0 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x29B0 | offset to vtable
- +0x29C4 | 00 00 | uint8_t[2] | .. | padding
- +0x29C6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x29C7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
- +0x29C8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
- +0x29CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+string (reflection.KeyValue.value):
+ +0x29E4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x29E8 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal
+ +0x29EF | 00 | char | 0x00 (0) | string terminator
-string (reflection.Field.name):
- +0x29D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x29D4 | 74 65 73 74 34 | char[5] | test4 | string literal
- +0x29D9 | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.key):
+ +0x29F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x29F4 | 68 61 73 68 | char[4] | hash | string literal
+ +0x29F8 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x29DA | 00 00 | uint8_t[2] | .. | padding
+ +0x29F9 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x29FC | A8 EC FF FF | SOffset32 | 0xFFFFECA8 (-4952) Loc: +0x3D54 | offset to vtable
+ +0x2A00 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2A03 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
+ +0x2A04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x2A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string
+ +0x2A0C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal
+ +0x2A14 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1
+ +0x2A1C | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2A1D | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x29DC | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2B24 | offset to vtable
- +0x29E0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x29E3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x29E4 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort)
- +0x29E6 | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort)
- +0x29E8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2A30 | offset to field `name` (string)
- +0x29EC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A20 | offset to field `type` (table)
- +0x29F0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x29FC | offset to field `attributes` (vector)
- +0x29F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29F8 | offset to field `documentation` (vector)
+ +0x2A20 | 2E FC FF FF | SOffset32 | 0xFFFFFC2E (-978) Loc: +0x2DF2 | offset to vtable
+ +0x2A24 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort)
+ +0x2A26 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort)
+ +0x2A28 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2A70 | offset to field `name` (string)
+ +0x2A2C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A60 | offset to field `type` (table)
+ +0x2A30 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2A3C | offset to field `attributes` (vector)
+ +0x2A34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A38 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x29F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2A38 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x29FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A04 | offset to table[0]
+ +0x2A3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2A40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A44 | offset to table[0]
table (reflection.KeyValue):
- +0x2A04 | A0 F4 FF FF | SOffset32 | 0xFFFFF4A0 (-2912) Loc: +0x3564 | offset to vtable
- +0x2A08 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A18 | offset to field `key` (string)
- +0x2A0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A10 | offset to field `value` (string)
+ +0x2A44 | 28 F1 FF FF | SOffset32 | 0xFFFFF128 (-3800) Loc: +0x391C | offset to vtable
+ +0x2A48 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A58 | offset to field `key` (string)
+ +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A50 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2A10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2A14 | 38 | char[1] | 8 | string literal
- +0x2A15 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2A16 | 00 00 | uint8_t[2] | .. | padding
+ +0x2A50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2A54 | 31 35 | char[2] | 15 | string literal
+ +0x2A56 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2A18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2A1C | 69 64 | char[2] | id | string literal
- +0x2A1E | 00 | char | 0x00 (0) | string terminator
+ +0x2A58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2A5C | 69 64 | char[2] | id | string literal
+ +0x2A5E | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2A20 | 68 F1 FF FF | SOffset32 | 0xFFFFF168 (-3736) Loc: +0x38B8 | offset to vtable
- +0x2A24 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2A27 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte)
- +0x2A28 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
- +0x2A2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2A60 | C4 EF FF FF | SOffset32 | 0xFFFFEFC4 (-4156) Loc: +0x3A9C | offset to vtable
+ +0x2A64 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2A67 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte)
+ +0x2A68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x2A6C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2A30 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2A34 | 74 65 73 74 | char[4] | test | string literal
- +0x2A38 | 00 | char | 0x00 (0) | string terminator
+ +0x2A70 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x2A74 | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal
+ +0x2A7C | 00 | char | 0x00 (0) | string terminator
-vtable (reflection.Field):
- +0x2A3A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x2A3C | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x2A3E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x2A40 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x2A42 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
- +0x2A44 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x2A46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2A4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2A4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2A4E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x2A50 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x2A52 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+padding:
+ +0x2A7D | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x2A54 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2A3A | offset to vtable
- +0x2A58 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort)
- +0x2A5A | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort)
- +0x2A5C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2AA8 | offset to field `name` (string)
- +0x2A60 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A94 | offset to field `type` (table)
- +0x2A64 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2A70 | offset to field `attributes` (vector)
- +0x2A68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A6C | offset to field `documentation` (vector)
+ +0x2A80 | A4 FB FF FF | SOffset32 | 0xFFFFFBA4 (-1116) Loc: +0x2EDC | offset to vtable
+ +0x2A84 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2A87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2A88 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort)
+ +0x2A8A | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort)
+ +0x2A8C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2AD4 | offset to field `name` (string)
+ +0x2A90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2AC4 | offset to field `type` (table)
+ +0x2A94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2AA0 | offset to field `attributes` (vector)
+ +0x2A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A9C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2A6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2A9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2A70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2A74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A78 | offset to table[0]
+ +0x2AA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2AA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AA8 | offset to table[0]
table (reflection.KeyValue):
- +0x2A78 | 14 F5 FF FF | SOffset32 | 0xFFFFF514 (-2796) Loc: +0x3564 | offset to vtable
- +0x2A7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A8C | offset to field `key` (string)
- +0x2A80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A84 | offset to field `value` (string)
+ +0x2AA8 | 8C F1 FF FF | SOffset32 | 0xFFFFF18C (-3700) Loc: +0x391C | offset to vtable
+ +0x2AAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ABC | offset to field `key` (string)
+ +0x2AB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AB4 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2A84 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2A88 | 37 | char[1] | 7 | string literal
- +0x2A89 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2A8A | 00 00 | uint8_t[2] | .. | padding
+ +0x2AB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2AB8 | 31 34 | char[2] | 14 | string literal
+ +0x2ABA | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2A8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2A90 | 69 64 | char[2] | id | string literal
- +0x2A92 | 00 | char | 0x00 (0) | string terminator
+ +0x2ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2AC0 | 69 64 | char[2] | id | string literal
+ +0x2AC2 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2A94 | 90 F4 FF FF | SOffset32 | 0xFFFFF490 (-2928) Loc: +0x3604 | offset to vtable
- +0x2A98 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2A9B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
- +0x2A9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
- +0x2AA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x2AA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2AC4 | 54 EE FF FF | SOffset32 | 0xFFFFEE54 (-4524) Loc: +0x3C70 | offset to vtable
+ +0x2AC8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2ACB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x2ACC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
+ +0x2AD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2AA8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string
- +0x2AAC | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal
- +0x2AB4 | 65 | | e
- +0x2AB5 | 00 | char | 0x00 (0) | string terminator
+ +0x2AD4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string
+ +0x2AD8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal
+ +0x2AE0 | 79 | | y
+ +0x2AE1 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2AB6 | 00 00 | uint8_t[2] | .. | padding
+ +0x2AE2 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x2AB8 | 42 FD FF FF | SOffset32 | 0xFFFFFD42 (-702) Loc: +0x2D76 | offset to vtable
- +0x2ABC | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort)
- +0x2ABE | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort)
- +0x2AC0 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2B18 | offset to field `name` (string)
- +0x2AC4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2B04 | offset to field `type` (table)
- +0x2AC8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2AE0 | offset to field `attributes` (vector)
- +0x2ACC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ADC | offset to field `documentation` (vector)
- +0x2AD0 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long)
- +0x2AD8 | 00 00 00 00 | uint8_t[4] | .... | padding
+ +0x2AE4 | 08 FC FF FF | SOffset32 | 0xFFFFFC08 (-1016) Loc: +0x2EDC | offset to vtable
+ +0x2AE8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2AEB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2AEC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort)
+ +0x2AEE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort)
+ +0x2AF0 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x2B68 | offset to field `name` (string)
+ +0x2AF4 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2B5C | offset to field `type` (table)
+ +0x2AF8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2B04 | offset to field `attributes` (vector)
+ +0x2AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B00 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2ADC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2B00 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2AE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2AE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AE8 | offset to table[0]
+ +0x2B04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2B08 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2B40 | offset to table[0]
+ +0x2B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B10 | offset to table[1]
table (reflection.KeyValue):
- +0x2AE8 | 84 F5 FF FF | SOffset32 | 0xFFFFF584 (-2684) Loc: +0x3564 | offset to vtable
- +0x2AEC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2AFC | offset to field `key` (string)
- +0x2AF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AF4 | offset to field `value` (string)
+ +0x2B10 | F4 F1 FF FF | SOffset32 | 0xFFFFF1F4 (-3596) Loc: +0x391C | offset to vtable
+ +0x2B14 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2B28 | offset to field `key` (string)
+ +0x2B18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B1C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2AF4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2AF8 | 36 | char[1] | 6 | string literal
- +0x2AF9 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2AFA | 00 00 | uint8_t[2] | .. | padding
+ +0x2B1C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x2B20 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal
+ +0x2B27 | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2AFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2B00 | 69 64 | char[2] | id | string literal
- +0x2B02 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x2B04 | 00 F5 FF FF | SOffset32 | 0xFFFFF500 (-2816) Loc: +0x3604 | offset to vtable
- +0x2B08 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2B0B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
- +0x2B0C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
- +0x2B10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x2B14 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x2B18 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x2B1C | 63 6F 6C 6F 72 | char[5] | color | string literal
- +0x2B21 | 00 | char | 0x00 (0) | string terminator
+ +0x2B28 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x2B2C | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal
+ +0x2B34 | 6C 61 74 62 75 66 66 65 | | latbuffe
+ +0x2B3C | 72 | | r
+ +0x2B3D | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2B22 | 00 00 | uint8_t[2] | .. | padding
+ +0x2B3E | 00 00 | uint8_t[2] | .. | padding
-vtable (reflection.Field):
- +0x2B24 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
- +0x2B26 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
- +0x2B28 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x2B2A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x2B2C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
- +0x2B2E | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
- +0x2B30 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2B32 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2B34 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2B36 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2B38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x2B3A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
- +0x2B3C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
- +0x2B3E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11)
+table (reflection.KeyValue):
+ +0x2B40 | 24 F2 FF FF | SOffset32 | 0xFFFFF224 (-3548) Loc: +0x391C | offset to vtable
+ +0x2B44 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B54 | offset to field `key` (string)
+ +0x2B48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B4C | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x2B4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2B50 | 31 33 | char[2] | 13 | string literal
+ +0x2B52 | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.KeyValue.key):
+ +0x2B54 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2B58 | 69 64 | char[2] | id | string literal
+ +0x2B5A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x2B5C | 20 FC FF FF | SOffset32 | 0xFFFFFC20 (-992) Loc: +0x2F3C | offset to vtable
+ +0x2B60 | 00 00 | uint8_t[2] | .. | padding
+ +0x2B62 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2B63 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
+ +0x2B64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x2B68 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string
+ +0x2B6C | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal
+ +0x2B74 | 65 64 66 6C 61 74 62 75 | | edflatbu
+ +0x2B7C | 66 66 65 72 | | ffer
+ +0x2B80 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2B81 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Field):
- +0x2B40 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2B24 | offset to vtable
- +0x2B44 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2B47 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x2B48 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort)
- +0x2B4A | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort)
- +0x2B4C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2BA0 | offset to field `name` (string)
- +0x2B50 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2B94 | offset to field `type` (table)
- +0x2B54 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2B60 | offset to field `attributes` (vector)
- +0x2B58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B5C | offset to field `documentation` (vector)
+ +0x2B84 | A8 FC FF FF | SOffset32 | 0xFFFFFCA8 (-856) Loc: +0x2EDC | offset to vtable
+ +0x2B88 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2B8B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2B8C | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort)
+ +0x2B8E | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort)
+ +0x2B90 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2BD8 | offset to field `name` (string)
+ +0x2B94 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2BC8 | offset to field `type` (table)
+ +0x2B98 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2BA4 | offset to field `attributes` (vector)
+ +0x2B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BA0 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2B5C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2BA0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2B60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2B64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B68 | offset to table[0]
+ +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BAC | offset to table[0]
table (reflection.KeyValue):
- +0x2B68 | 04 F6 FF FF | SOffset32 | 0xFFFFF604 (-2556) Loc: +0x3564 | offset to vtable
- +0x2B6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B7C | offset to field `key` (string)
- +0x2B70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B74 | offset to field `value` (string)
+ +0x2BAC | 90 F2 FF FF | SOffset32 | 0xFFFFF290 (-3440) Loc: +0x391C | offset to vtable
+ +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BC0 | offset to field `key` (string)
+ +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BB8 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2B74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2B78 | 35 | char[1] | 5 | string literal
- +0x2B79 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2B7A | 00 00 | uint8_t[2] | .. | padding
+ +0x2BB8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2BBC | 31 32 | char[2] | 12 | string literal
+ +0x2BBE | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2B7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2B80 | 69 64 | char[2] | id | string literal
- +0x2B82 | 00 | char | 0x00 (0) | string terminator
-
-vtable (reflection.Type):
- +0x2B84 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
- +0x2B86 | 0C 00 | uint16_t | 0x000C (12) | size of referring table
- +0x2B88 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0)
- +0x2B8A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1)
- +0x2B8C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) <defaults to -1> (Int)
- +0x2B8E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
- +0x2B90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
- +0x2B92 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5)
+ +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2BC4 | 69 64 | char[2] | id | string literal
+ +0x2BC6 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2B94 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2B84 | offset to vtable
- +0x2B98 | 00 00 | uint8_t[2] | .. | padding
- +0x2B9A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
- +0x2B9B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
- +0x2B9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x2BA0 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string
- +0x2BA4 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal
- +0x2BAC | 79 | | y
- +0x2BAD | 00 | char | 0x00 (0) | string terminator
-
-vtable (reflection.Field):
- +0x2BAE | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x2BB0 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
- +0x2BB2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x2BB4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x2BB6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
- +0x2BB8 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
- +0x2BBA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2BBC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2BBE | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6)
- +0x2BC0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2BC2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x2BC4 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
- +0x2BC6 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
-
-table (reflection.Field):
- +0x2BC8 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2BAE | offset to vtable
+ +0x2BC8 | 58 EF FF FF | SOffset32 | 0xFFFFEF58 (-4264) Loc: +0x3C70 | offset to vtable
+0x2BCC | 00 00 00 | uint8_t[3] | ... | padding
- +0x2BCF | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool)
- +0x2BD0 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort)
- +0x2BD2 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort)
- +0x2BD4 | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x2C6C | offset to field `name` (string)
- +0x2BD8 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x2C5C | offset to field `type` (table)
- +0x2BDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2BE8 | offset to field `attributes` (vector)
- +0x2BE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BE4 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x2BE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x2BE8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
- +0x2BEC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2C38 | offset to table[0]
- +0x2BF0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2C1C | offset to table[1]
- +0x2BF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BF8 | offset to table[2]
-
-table (reflection.KeyValue):
- +0x2BF8 | 94 F6 FF FF | SOffset32 | 0xFFFFF694 (-2412) Loc: +0x3564 | offset to vtable
- +0x2BFC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C0C | offset to field `key` (string)
- +0x2C00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C04 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2C04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2C08 | 31 | char[1] | 1 | string literal
- +0x2C09 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2C0A | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x2C0C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x2C10 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal
- +0x2C18 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2C19 | 00 00 00 | uint8_t[3] | ... | padding
-
-table (reflection.KeyValue):
- +0x2C1C | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x3564 | offset to vtable
- +0x2C20 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C30 | offset to field `key` (string)
- +0x2C24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C28 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2C28 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2C2C | 34 | char[1] | 4 | string literal
- +0x2C2D | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2C2E | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x2C30 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2C34 | 69 64 | char[2] | id | string literal
- +0x2C36 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.KeyValue):
- +0x2C38 | D4 F6 FF FF | SOffset32 | 0xFFFFF6D4 (-2348) Loc: +0x3564 | offset to vtable
- +0x2C3C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C4C | offset to field `key` (string)
- +0x2C40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C44 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2C44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2C48 | 30 | char[1] | 0 | string literal
- +0x2C49 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2C4A | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x2C4C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string
- +0x2C50 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal
- +0x2C58 | 65 64 | | ed
- +0x2C5A | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x2C5C | 78 F5 FF FF | SOffset32 | 0xFFFFF578 (-2696) Loc: +0x36E4 | offset to vtable
- +0x2C60 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2C63 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte)
- +0x2C64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x2C68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2BCF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x2BD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
+ +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2C6C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x2C70 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal
- +0x2C78 | 00 | char | 0x00 (0) | string terminator
+ +0x2BD8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x2BDC | 65 6E 65 6D 79 | char[5] | enemy | string literal
+ +0x2BE1 | 00 | char | 0x00 (0) | string terminator
-vtable (reflection.Field):
- +0x2C7A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x2C7C | 1C 00 | uint16_t | 0x001C (28) | size of referring table
- +0x2C7E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x2C80 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x2C82 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
- +0x2C84 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
- +0x2C86 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2C88 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2C8A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2C8C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7)
- +0x2C8E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8)
- +0x2C90 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
- +0x2C92 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
+padding:
+ +0x2BE2 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x2C94 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2C7A | offset to vtable
- +0x2C98 | 00 00 | uint8_t[2] | .. | padding
- +0x2C9A | 01 | uint8_t | 0x01 (1) | table field `required` (Bool)
- +0x2C9B | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
- +0x2C9C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort)
- +0x2C9E | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort)
- +0x2CA0 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x2D04 | offset to field `name` (string)
- +0x2CA4 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2CF8 | offset to field `type` (table)
- +0x2CA8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2CB4 | offset to field `attributes` (vector)
- +0x2CAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CB0 | offset to field `documentation` (vector)
+ +0x2BE4 | 08 FD FF FF | SOffset32 | 0xFFFFFD08 (-760) Loc: +0x2EDC | offset to vtable
+ +0x2BE8 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2BEB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2BEC | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort)
+ +0x2BEE | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort)
+ +0x2BF0 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x2CA4 | offset to field `name` (string)
+ +0x2BF4 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x2C94 | offset to field `type` (table)
+ +0x2BF8 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x2C70 | offset to field `attributes` (vector)
+ +0x2BFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C00 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2CB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2C00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x2C04 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x2C20 | offset to string[0]
+ +0x2C08 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C0C | offset to string[1]
+
+string (reflection.Field.documentation):
+ +0x2C0C | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string
+ +0x2C10 | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal
+ +0x2C18 | 6E 65 20 74 6F 6F | | ne too
+ +0x2C1E | 00 | char | 0x00 (0) | string terminator
+
+string (reflection.Field.documentation):
+ +0x2C20 | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string
+ +0x2C24 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal
+ +0x2C2C | 70 6C 65 20 64 6F 63 75 | | ple docu
+ +0x2C34 | 6D 65 6E 74 61 74 69 6F | | mentatio
+ +0x2C3C | 6E 20 63 6F 6D 6D 65 6E | | n commen
+ +0x2C44 | 74 3A 20 74 68 69 73 20 | | t: this
+ +0x2C4C | 77 69 6C 6C 20 65 6E 64 | | will end
+ +0x2C54 | 20 75 70 20 69 6E 20 74 | | up in t
+ +0x2C5C | 68 65 20 67 65 6E 65 72 | | he gener
+ +0x2C64 | 61 74 65 64 20 63 6F 64 | | ated cod
+ +0x2C6C | 65 | | e
+ +0x2C6D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2C6E | 00 00 | uint8_t[2] | .. | padding
vector (reflection.Field.attributes):
- +0x2CB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x2CB8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2CDC | offset to table[0]
- +0x2CBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CC0 | offset to table[1]
+ +0x2C70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2C74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C78 | offset to table[0]
table (reflection.KeyValue):
- +0x2CC0 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x3564 | offset to vtable
- +0x2CC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CD4 | offset to field `key` (string)
- +0x2CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CCC | offset to field `value` (string)
+ +0x2C78 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x391C | offset to vtable
+ +0x2C7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C8C | offset to field `key` (string)
+ +0x2C80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C84 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2CCC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2CD0 | 30 | char[1] | 0 | string literal
- +0x2CD1 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2CD2 | 00 00 | uint8_t[2] | .. | padding
+ +0x2C84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2C88 | 31 31 | char[2] | 11 | string literal
+ +0x2C8A | 00 | char | 0x00 (0) | string terminator
string (reflection.KeyValue.key):
- +0x2CD4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
- +0x2CD8 | 6B 65 79 | char[3] | key | string literal
- +0x2CDB | 00 | char | 0x00 (0) | string terminator
+ +0x2C8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2C90 | 69 64 | char[2] | id | string literal
+ +0x2C92 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x2C94 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x2D68 | offset to vtable
+ +0x2C98 | 00 00 | uint8_t[2] | .. | padding
+ +0x2C9A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2C9B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x2C9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int)
+ +0x2CA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x2CA4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x2CA8 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal
+ +0x2CB0 | 79 6F 66 74 61 62 6C 65 | | yoftable
+ +0x2CB8 | 73 | | s
+ +0x2CB9 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2CBA | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x2CBC | E0 FD FF FF | SOffset32 | 0xFFFFFDE0 (-544) Loc: +0x2EDC | offset to vtable
+ +0x2CC0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2CC3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2CC4 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort)
+ +0x2CC6 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort)
+ +0x2CC8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2D0C | offset to field `name` (string)
+ +0x2CCC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2D00 | offset to field `type` (table)
+ +0x2CD0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2CDC | offset to field `attributes` (vector)
+ +0x2CD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CD8 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x2CD8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2CE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CE4 | offset to table[0]
table (reflection.KeyValue):
- +0x2CDC | 78 F7 FF FF | SOffset32 | 0xFFFFF778 (-2184) Loc: +0x3564 | offset to vtable
- +0x2CE0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CF0 | offset to field `key` (string)
- +0x2CE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CE8 | offset to field `value` (string)
+ +0x2CE4 | C8 F3 FF FF | SOffset32 | 0xFFFFF3C8 (-3128) Loc: +0x391C | offset to vtable
+ +0x2CE8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CF8 | offset to field `key` (string)
+ +0x2CEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CF0 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2CE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2CEC | 33 | char[1] | 3 | string literal
- +0x2CED | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2CEE | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
+0x2CF0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2CF4 | 69 64 | char[2] | id | string literal
+ +0x2CF4 | 31 30 | char[2] | 10 | string literal
+0x2CF6 | 00 | char | 0x00 (0) | string terminator
+string (reflection.KeyValue.key):
+ +0x2CF8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2CFC | 69 64 | char[2] | id | string literal
+ +0x2CFE | 00 | char | 0x00 (0) | string terminator
+
table (reflection.Type):
- +0x2CF8 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x399C | offset to vtable
- +0x2CFC | 00 00 00 | uint8_t[3] | ... | padding
- +0x2CFF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte)
- +0x2D00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2D00 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x2F3C | offset to vtable
+ +0x2D04 | 00 00 | uint8_t[2] | .. | padding
+ +0x2D06 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2D07 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte)
+ +0x2D08 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2D04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2D08 | 6E 61 6D 65 | char[4] | name | string literal
- +0x2D0C | 00 | char | 0x00 (0) | string terminator
+ +0x2D0C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string
+ +0x2D10 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal
+ +0x2D18 | 79 6F 66 73 74 72 69 6E | | yofstrin
+ +0x2D20 | 67 | | g
+ +0x2D21 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2D0D | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2D22 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x2D10 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x2D76 | offset to vtable
- +0x2D14 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
- +0x2D16 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
- +0x2D18 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2D6C | offset to field `name` (string)
- +0x2D1C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2D5C | offset to field `type` (table)
- +0x2D20 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2D38 | offset to field `attributes` (vector)
- +0x2D24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D34 | offset to field `documentation` (vector)
- +0x2D28 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long)
- +0x2D30 | 00 00 00 00 | uint8_t[4] | .... | padding
+ +0x2D24 | 48 FE FF FF | SOffset32 | 0xFFFFFE48 (-440) Loc: +0x2EDC | offset to vtable
+ +0x2D28 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2D2B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2D2C | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort)
+ +0x2D2E | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort)
+ +0x2D30 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2D88 | offset to field `name` (string)
+ +0x2D34 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2D78 | offset to field `type` (table)
+ +0x2D38 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2D44 | offset to field `attributes` (vector)
+ +0x2D3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D40 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2D34 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2D40 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2D38 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2D3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D40 | offset to table[0]
+ +0x2D44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2D48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D4C | offset to table[0]
table (reflection.KeyValue):
- +0x2D40 | DC F7 FF FF | SOffset32 | 0xFFFFF7DC (-2084) Loc: +0x3564 | offset to vtable
- +0x2D44 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D54 | offset to field `key` (string)
- +0x2D48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D4C | offset to field `value` (string)
+ +0x2D4C | 30 F4 FF FF | SOffset32 | 0xFFFFF430 (-3024) Loc: +0x391C | offset to vtable
+ +0x2D50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D60 | offset to field `key` (string)
+ +0x2D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D58 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2D4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2D50 | 32 | char[1] | 2 | string literal
- +0x2D51 | 00 | char | 0x00 (0) | string terminator
+ +0x2D58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x2D5C | 39 | char[1] | 9 | string literal
+ +0x2D5D | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2D52 | 00 00 | uint8_t[2] | .. | padding
+ +0x2D5E | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x2D54 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2D58 | 69 64 | char[2] | id | string literal
- +0x2D5A | 00 | char | 0x00 (0) | string terminator
+ +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2D64 | 69 64 | char[2] | id | string literal
+ +0x2D66 | 00 | char | 0x00 (0) | string terminator
+
+vtable (reflection.Type):
+ +0x2D68 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
+ +0x2D6A | 10 00 | uint16_t | 0x0010 (16) | size of referring table
+ +0x2D6C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0)
+ +0x2D6E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1)
+ +0x2D70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2)
+ +0x2D72 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
+ +0x2D74 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
+ +0x2D76 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5)
table (reflection.Type):
- +0x2D5C | 78 F6 FF FF | SOffset32 | 0xFFFFF678 (-2440) Loc: +0x36E4 | offset to vtable
- +0x2D60 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2D63 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
- +0x2D64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
- +0x2D68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2D78 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2D68 | offset to vtable
+ +0x2D7C | 00 00 | uint8_t[2] | .. | padding
+ +0x2D7E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2D7F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte)
+ +0x2D80 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
+ +0x2D84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2D6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2D70 | 68 70 | char[2] | hp | string literal
- +0x2D72 | 00 | char | 0x00 (0) | string terminator
+ +0x2D88 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x2D8C | 74 65 73 74 34 | char[5] | test4 | string literal
+ +0x2D91 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2D73 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2D92 | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x2D94 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2EDC | offset to vtable
+ +0x2D98 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2D9B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2D9C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort)
+ +0x2D9E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort)
+ +0x2DA0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2DE8 | offset to field `name` (string)
+ +0x2DA4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2DD8 | offset to field `type` (table)
+ +0x2DA8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2DB4 | offset to field `attributes` (vector)
+ +0x2DAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DB0 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x2DB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x2DB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DBC | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x2DBC | A0 F4 FF FF | SOffset32 | 0xFFFFF4A0 (-2912) Loc: +0x391C | offset to vtable
+ +0x2DC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DD0 | offset to field `key` (string)
+ +0x2DC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DC8 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x2DC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x2DCC | 38 | char[1] | 8 | string literal
+ +0x2DCD | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2DCE | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x2DD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2DD4 | 69 64 | char[2] | id | string literal
+ +0x2DD6 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x2DD8 | 68 F1 FF FF | SOffset32 | 0xFFFFF168 (-3736) Loc: +0x3C70 | offset to vtable
+ +0x2DDC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2DDF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte)
+ +0x2DE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
+ +0x2DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x2DE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x2DEC | 74 65 73 74 | char[4] | test | string literal
+ +0x2DF0 | 00 | char | 0x00 (0) | string terminator
vtable (reflection.Field):
- +0x2D76 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x2D78 | 24 00 | uint16_t | 0x0024 (36) | size of referring table
- +0x2D7A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x2D7C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x2D7E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
- +0x2D80 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x2D82 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4)
- +0x2D84 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2D86 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2D88 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2D8A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x2D8C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x2D8E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x2DF2 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x2DF4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x2DF6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x2DF8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x2DFA | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
+ +0x2DFC | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x2DFE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x2E00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x2E02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x2E04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x2E06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x2E08 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x2E0A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x2D90 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2D76 | offset to vtable
- +0x2D94 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
- +0x2D96 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort)
- +0x2D98 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2DEC | offset to field `name` (string)
- +0x2D9C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2DDC | offset to field `type` (table)
- +0x2DA0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2DB8 | offset to field `attributes` (vector)
- +0x2DA4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DB4 | offset to field `documentation` (vector)
- +0x2DA8 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long)
- +0x2DB0 | 00 00 00 00 | uint8_t[4] | .... | padding
+ +0x2E0C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2DF2 | offset to vtable
+ +0x2E10 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort)
+ +0x2E12 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort)
+ +0x2E14 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2E60 | offset to field `name` (string)
+ +0x2E18 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E4C | offset to field `type` (table)
+ +0x2E1C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E28 | offset to field `attributes` (vector)
+ +0x2E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E24 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2DB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2E24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2DB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2DBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DC0 | offset to table[0]
+ +0x2E28 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E30 | offset to table[0]
table (reflection.KeyValue):
- +0x2DC0 | 5C F8 FF FF | SOffset32 | 0xFFFFF85C (-1956) Loc: +0x3564 | offset to vtable
- +0x2DC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DD4 | offset to field `key` (string)
- +0x2DC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DCC | offset to field `value` (string)
+ +0x2E30 | 14 F5 FF FF | SOffset32 | 0xFFFFF514 (-2796) Loc: +0x391C | offset to vtable
+ +0x2E34 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E44 | offset to field `key` (string)
+ +0x2E38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E3C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2DCC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2DD0 | 31 | char[1] | 1 | string literal
- +0x2DD1 | 00 | char | 0x00 (0) | string terminator
+ +0x2E3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x2E40 | 37 | char[1] | 7 | string literal
+ +0x2E41 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2DD2 | 00 00 | uint8_t[2] | .. | padding
+ +0x2E42 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x2DD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2DD8 | 69 64 | char[2] | id | string literal
- +0x2DDA | 00 | char | 0x00 (0) | string terminator
+ +0x2E44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2E48 | 69 64 | char[2] | id | string literal
+ +0x2E4A | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2DDC | F8 F6 FF FF | SOffset32 | 0xFFFFF6F8 (-2312) Loc: +0x36E4 | offset to vtable
- +0x2DE0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2DE3 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
- +0x2DE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
- +0x2DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2E4C | 90 F4 FF FF | SOffset32 | 0xFFFFF490 (-2928) Loc: +0x39BC | offset to vtable
+ +0x2E50 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2E53 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte)
+ +0x2E54 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
+ +0x2E58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2DEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2DF0 | 6D 61 6E 61 | char[4] | mana | string literal
- +0x2DF4 | 00 | char | 0x00 (0) | string terminator
+ +0x2E60 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string
+ +0x2E64 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal
+ +0x2E6C | 65 | | e
+ +0x2E6D | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2DF5 | 00 00 00 | uint8_t[3] | ... | padding
-
-vtable (reflection.Field):
- +0x2DF8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
- +0x2DFA | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x2DFC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x2DFE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x2E00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x2E02 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x2E04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2E06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2E08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2E0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2E0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x2E0E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x2E10 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
- +0x2E12 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11)
+ +0x2E6E | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x2E14 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2DF8 | offset to vtable
- +0x2E18 | 00 | uint8_t[1] | . | padding
- +0x2E19 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x2E1A | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x2E1C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2E64 | offset to field `name` (string)
- +0x2E20 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E54 | offset to field `type` (table)
- +0x2E24 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E30 | offset to field `attributes` (vector)
- +0x2E28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E2C | offset to field `documentation` (vector)
+ +0x2E70 | 42 FD FF FF | SOffset32 | 0xFFFFFD42 (-702) Loc: +0x312E | offset to vtable
+ +0x2E74 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort)
+ +0x2E76 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort)
+ +0x2E78 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2ED0 | offset to field `name` (string)
+ +0x2E7C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2EBC | offset to field `type` (table)
+ +0x2E80 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2E98 | offset to field `attributes` (vector)
+ +0x2E84 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E94 | offset to field `documentation` (vector)
+ +0x2E88 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long)
+ +0x2E90 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (reflection.Field.documentation):
- +0x2E2C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2E94 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2E30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2E34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E38 | offset to table[0]
+ +0x2E98 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2E9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EA0 | offset to table[0]
table (reflection.KeyValue):
- +0x2E38 | D4 F8 FF FF | SOffset32 | 0xFFFFF8D4 (-1836) Loc: +0x3564 | offset to vtable
- +0x2E3C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E4C | offset to field `key` (string)
- +0x2E40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E44 | offset to field `value` (string)
+ +0x2EA0 | 84 F5 FF FF | SOffset32 | 0xFFFFF584 (-2684) Loc: +0x391C | offset to vtable
+ +0x2EA4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2EB4 | offset to field `key` (string)
+ +0x2EA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EAC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2E44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2E48 | 30 | char[1] | 0 | string literal
- +0x2E49 | 00 | char | 0x00 (0) | string terminator
+ +0x2EAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x2EB0 | 36 | char[1] | 6 | string literal
+ +0x2EB1 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2E4A | 00 00 | uint8_t[2] | .. | padding
+ +0x2EB2 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x2E4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2E50 | 69 64 | char[2] | id | string literal
- +0x2E52 | 00 | char | 0x00 (0) | string terminator
+ +0x2EB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2EB8 | 69 64 | char[2] | id | string literal
+ +0x2EBA | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x2E54 | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x38B8 | offset to vtable
- +0x2E58 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2E5B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x2E5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int)
- +0x2E60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2EBC | 00 F5 FF FF | SOffset32 | 0xFFFFF500 (-2816) Loc: +0x39BC | offset to vtable
+ +0x2EC0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2EC3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
+ +0x2EC4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
+ +0x2EC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2E64 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
- +0x2E68 | 70 6F 73 | char[3] | pos | string literal
- +0x2E6B | 00 | char | 0x00 (0) | string terminator
+ +0x2ED0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x2ED4 | 63 6F 6C 6F 72 | char[5] | color | string literal
+ +0x2ED9 | 00 | char | 0x00 (0) | string terminator
-table (reflection.Object):
- +0x2E6C | 44 F6 FF FF | SOffset32 | 0xFFFFF644 (-2492) Loc: +0x3828 | offset to vtable
- +0x2E70 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x2E90 | offset to field `name` (string)
- +0x2E74 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2E88 | offset to field `fields` (vector)
- +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x2E7C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x2E84 | offset to field `documentation` (vector)
- +0x2E80 | E0 08 00 00 | UOffset32 | 0x000008E0 (2272) Loc: +0x3760 | offset to field `declaration_file` (string)
-
-vector (reflection.Object.documentation):
- +0x2E84 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Object.fields):
- +0x2E88 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2E8C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2EC8 | offset to table[0]
-
-string (reflection.Object.name):
- +0x2E90 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string
- +0x2E94 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal
- +0x2E9C | 78 61 6D 70 6C 65 2E 52 | | xample.R
- +0x2EA4 | 65 66 65 72 72 61 62 6C | | eferrabl
- +0x2EAC | 65 | | e
- +0x2EAD | 00 | char | 0x00 (0) | string terminator
+padding:
+ +0x2EDA | 00 00 | uint8_t[2] | .. | padding
vtable (reflection.Field):
- +0x2EAE | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x2EB0 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x2EB2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x2EB4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x2EB6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x2EB8 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x2EBA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2EBC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2EBE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2EC0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2EC2 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8)
- +0x2EC4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x2EC6 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x2EDC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
+ +0x2EDE | 1C 00 | uint16_t | 0x001C (28) | size of referring table
+ +0x2EE0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x2EE2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x2EE4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
+ +0x2EE6 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
+ +0x2EE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x2EEA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x2EEC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x2EEE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x2EF0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x2EF2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
+ +0x2EF4 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
+ +0x2EF6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11)
table (reflection.Field):
- +0x2EC8 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2EAE | offset to vtable
- +0x2ECC | 00 | uint8_t[1] | . | padding
- +0x2ECD | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
- +0x2ECE | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x2ED0 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2F44 | offset to field `name` (string)
- +0x2ED4 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2F34 | offset to field `type` (table)
- +0x2ED8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2EE4 | offset to field `attributes` (vector)
- +0x2EDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EE0 | offset to field `documentation` (vector)
+ +0x2EF8 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2EDC | offset to vtable
+ +0x2EFC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2EFF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x2F00 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort)
+ +0x2F02 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort)
+ +0x2F04 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2F58 | offset to field `name` (string)
+ +0x2F08 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2F4C | offset to field `type` (table)
+ +0x2F0C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2F18 | offset to field `attributes` (vector)
+ +0x2F10 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F14 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2EE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2F14 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2EE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x2EE8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2F0C | offset to table[0]
- +0x2EEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EF0 | offset to table[1]
+ +0x2F18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x2F1C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F20 | offset to table[0]
table (reflection.KeyValue):
- +0x2EF0 | 8C F9 FF FF | SOffset32 | 0xFFFFF98C (-1652) Loc: +0x3564 | offset to vtable
- +0x2EF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F04 | offset to field `key` (string)
- +0x2EF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EFC | offset to field `value` (string)
+ +0x2F20 | 04 F6 FF FF | SOffset32 | 0xFFFFF604 (-2556) Loc: +0x391C | offset to vtable
+ +0x2F24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F34 | offset to field `key` (string)
+ +0x2F28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F2C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x2EFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2F00 | 30 | char[1] | 0 | string literal
- +0x2F01 | 00 | char | 0x00 (0) | string terminator
+ +0x2F2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x2F30 | 35 | char[1] | 5 | string literal
+ +0x2F31 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x2F02 | 00 00 | uint8_t[2] | .. | padding
+ +0x2F32 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x2F04 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
- +0x2F08 | 6B 65 79 | char[3] | key | string literal
- +0x2F0B | 00 | char | 0x00 (0) | string terminator
+ +0x2F34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2F38 | 69 64 | char[2] | id | string literal
+ +0x2F3A | 00 | char | 0x00 (0) | string terminator
-table (reflection.KeyValue):
- +0x2F0C | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x3564 | offset to vtable
- +0x2F10 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2F28 | offset to field `key` (string)
- +0x2F14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F18 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x2F18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x2F1C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
- +0x2F24 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2F25 | 00 00 00 | uint8_t[3] | ... | padding
-
-string (reflection.KeyValue.key):
- +0x2F28 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
- +0x2F2C | 68 61 73 68 | char[4] | hash | string literal
- +0x2F30 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2F31 | 00 00 00 | uint8_t[3] | ... | padding
+vtable (reflection.Type):
+ +0x2F3C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
+ +0x2F3E | 0C 00 | uint16_t | 0x000C (12) | size of referring table
+ +0x2F40 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0)
+ +0x2F42 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1)
+ +0x2F44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) <defaults to -1> (Int)
+ +0x2F46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
+ +0x2F48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
+ +0x2F4A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5)
table (reflection.Type):
- +0x2F34 | 50 F8 FF FF | SOffset32 | 0xFFFFF850 (-1968) Loc: +0x36E4 | offset to vtable
- +0x2F38 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2F3B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
- +0x2F3C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x2F40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x2F4C | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2F3C | offset to vtable
+ +0x2F50 | 00 00 | uint8_t[2] | .. | padding
+ +0x2F52 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte)
+ +0x2F53 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte)
+ +0x2F54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x2F44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x2F48 | 69 64 | char[2] | id | string literal
- +0x2F4A | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Object):
- +0x2F4C | 24 F7 FF FF | SOffset32 | 0xFFFFF724 (-2268) Loc: +0x3828 | offset to vtable
- +0x2F50 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x2F78 | offset to field `name` (string)
- +0x2F54 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2F68 | offset to field `fields` (vector)
- +0x2F58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x2F5C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x2F64 | offset to field `documentation` (vector)
- +0x2F60 | 00 08 00 00 | UOffset32 | 0x00000800 (2048) Loc: +0x3760 | offset to field `declaration_file` (string)
-
-vector (reflection.Object.documentation):
- +0x2F64 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Object.fields):
- +0x2F68 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
- +0x2F6C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2FAC | offset to table[0]
- +0x2F70 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x303C | offset to table[1]
- +0x2F74 | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x300C | offset to table[2]
-
-string (reflection.Object.name):
- +0x2F78 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
- +0x2F7C | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal
- +0x2F84 | 78 61 6D 70 6C 65 2E 53 | | xample.S
- +0x2F8C | 74 61 74 | | tat
- +0x2F8F | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x2F90 | 00 00 | uint8_t[2] | .. | padding
+ +0x2F58 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string
+ +0x2F5C | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal
+ +0x2F64 | 79 | | y
+ +0x2F65 | 00 | char | 0x00 (0) | string terminator
vtable (reflection.Field):
- +0x2F92 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x2F94 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
- +0x2F96 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x2F98 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x2F9A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
- +0x2F9C | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
- +0x2F9E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x2FA0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x2FA2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x2FA4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x2FA6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8)
- +0x2FA8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
- +0x2FAA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
+ +0x2F66 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x2F68 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
+ +0x2F6A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x2F6C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x2F6E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
+ +0x2F70 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
+ +0x2F72 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x2F74 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x2F76 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6)
+ +0x2F78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x2F7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x2F7C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
+ +0x2F7E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x2FAC | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2F92 | offset to vtable
- +0x2FB0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2FB3 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
- +0x2FB4 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
- +0x2FB6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
- +0x2FB8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3000 | offset to field `name` (string)
- +0x2FBC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2FF0 | offset to field `type` (table)
- +0x2FC0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FCC | offset to field `attributes` (vector)
- +0x2FC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FC8 | offset to field `documentation` (vector)
+ +0x2F80 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2F66 | offset to vtable
+ +0x2F84 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x2F87 | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool)
+ +0x2F88 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort)
+ +0x2F8A | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort)
+ +0x2F8C | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x3024 | offset to field `name` (string)
+ +0x2F90 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x3014 | offset to field `type` (table)
+ +0x2F94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FA0 | offset to field `attributes` (vector)
+ +0x2F98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F9C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x2FC8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x2F9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Field.attributes):
- +0x2FCC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x2FD0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FD4 | offset to table[0]
+ +0x2FA0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+ +0x2FA4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2FF0 | offset to table[0]
+ +0x2FA8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2FD4 | offset to table[1]
+ +0x2FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FB0 | offset to table[2]
table (reflection.KeyValue):
- +0x2FD4 | 70 FA FF FF | SOffset32 | 0xFFFFFA70 (-1424) Loc: +0x3564 | offset to vtable
+ +0x2FB0 | 94 F6 FF FF | SOffset32 | 0xFFFFF694 (-2412) Loc: +0x391C | offset to vtable
+ +0x2FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FC4 | offset to field `key` (string)
+ +0x2FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FBC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x2FBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x2FC0 | 31 | char[1] | 1 | string literal
+ +0x2FC1 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2FC2 | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x2FC4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x2FC8 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal
+ +0x2FD0 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x2FD1 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.KeyValue):
+ +0x2FD4 | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x391C | offset to vtable
+0x2FD8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FE8 | offset to field `key` (string)
+0x2FDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FE0 | offset to field `value` (string)
string (reflection.KeyValue.value):
+0x2FE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x2FE4 | 30 | char[1] | 0 | string literal
+ +0x2FE4 | 34 | char[1] | 4 | string literal
+0x2FE5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x2FE6 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x2FE8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
- +0x2FEC | 6B 65 79 | char[3] | key | string literal
- +0x2FEF | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Type):
- +0x2FF0 | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x36E4 | offset to vtable
- +0x2FF4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x2FF7 | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte)
- +0x2FF8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
- +0x2FFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3000 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x3004 | 63 6F 75 6E 74 | char[5] | count | string literal
- +0x3009 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x300A | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x300C | 76 FB FF FF | SOffset32 | 0xFFFFFB76 (-1162) Loc: +0x3496 | offset to vtable
- +0x3010 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
- +0x3012 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort)
- +0x3014 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3034 | offset to field `name` (string)
- +0x3018 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3024 | offset to field `type` (table)
- +0x301C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3020 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x3020 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x3024 | 40 F9 FF FF | SOffset32 | 0xFFFFF940 (-1728) Loc: +0x36E4 | offset to vtable
- +0x3028 | 00 00 00 | uint8_t[3] | ... | padding
- +0x302B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
- +0x302C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x3030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3034 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
- +0x3038 | 76 61 6C | char[3] | val | string literal
- +0x303B | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Field):
- +0x303C | B8 F7 FF FF | SOffset32 | 0xFFFFF7B8 (-2120) Loc: +0x3884 | offset to vtable
- +0x3040 | 00 | uint8_t[1] | . | padding
- +0x3041 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x3042 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x3044 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3060 | offset to field `name` (string)
- +0x3048 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3054 | offset to field `type` (table)
- +0x304C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3050 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x3050 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x3054 | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x399C | offset to vtable
- +0x3058 | 00 00 00 | uint8_t[3] | ... | padding
- +0x305B | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte)
- +0x305C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3060 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
- +0x3064 | 69 64 | char[2] | id | string literal
- +0x3066 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Object):
- +0x3068 | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x38E0 | offset to vtable
- +0x306C | 00 00 00 | uint8_t[3] | ... | padding
- +0x306F | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
- +0x3070 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3094 | offset to field `name` (string)
- +0x3074 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x308C | offset to field `fields` (vector)
- +0x3078 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
- +0x307C | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int)
- +0x3080 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3088 | offset to field `documentation` (vector)
- +0x3084 | DC 06 00 00 | UOffset32 | 0x000006DC (1756) Loc: +0x3760 | offset to field `declaration_file` (string)
-
-vector (reflection.Object.documentation):
- +0x3088 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Object.fields):
- +0x308C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x3090 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x30C0 | offset to table[0]
-
-string (reflection.Object.name):
- +0x3094 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string
- +0x3098 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal
- +0x30A0 | 78 61 6D 70 6C 65 2E 53 | | xample.S
- +0x30A8 | 74 72 75 63 74 4F 66 53 | | tructOfS
- +0x30B0 | 74 72 75 63 74 73 4F 66 | | tructsOf
- +0x30B8 | 53 74 72 75 63 74 73 | | Structs
- +0x30BF | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Field):
- +0x30C0 | F4 FE FF FF | SOffset32 | 0xFFFFFEF4 (-268) Loc: +0x31CC | offset to vtable
- +0x30C4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x30C7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x30C8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x30E8 | offset to field `name` (string)
- +0x30CC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x30D8 | offset to field `type` (table)
- +0x30D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30D4 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x30D4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x30D8 | 20 F8 FF FF | SOffset32 | 0xFFFFF820 (-2016) Loc: +0x38B8 | offset to vtable
- +0x30DC | 00 00 00 | uint8_t[3] | ... | padding
- +0x30DF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x30E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
- +0x30E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x30E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x30EC | 61 | char[1] | a | string literal
- +0x30ED | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x30EE | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Object):
- +0x30F0 | 10 F8 FF FF | SOffset32 | 0xFFFFF810 (-2032) Loc: +0x38E0 | offset to vtable
- +0x30F4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x30F7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
- +0x30F8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3124 | offset to field `name` (string)
- +0x30FC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3114 | offset to field `fields` (vector)
- +0x3100 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
- +0x3104 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int)
- +0x3108 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3110 | offset to field `documentation` (vector)
- +0x310C | 54 06 00 00 | UOffset32 | 0x00000654 (1620) Loc: +0x3760 | offset to field `declaration_file` (string)
-
-vector (reflection.Object.documentation):
- +0x3110 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Object.fields):
- +0x3114 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
- +0x3118 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x31E8 | offset to table[0]
- +0x311C | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x3198 | offset to table[1]
- +0x3120 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3148 | offset to table[2]
-
-string (reflection.Object.name):
- +0x3124 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string
- +0x3128 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal
- +0x3130 | 78 61 6D 70 6C 65 2E 53 | | xample.S
- +0x3138 | 74 72 75 63 74 4F 66 53 | | tructOfS
- +0x3140 | 74 72 75 63 74 73 | | tructs
- +0x3146 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Field):
- +0x3148 | CC FF FF FF | SOffset32 | 0xFFFFFFCC (-52) Loc: +0x317C | offset to vtable
- +0x314C | 00 00 00 | uint8_t[3] | ... | padding
- +0x314F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x3150 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
- +0x3152 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort)
- +0x3154 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3174 | offset to field `name` (string)
- +0x3158 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3164 | offset to field `type` (table)
- +0x315C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3160 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x3160 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x3164 | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x38B8 | offset to vtable
- +0x3168 | 00 00 00 | uint8_t[3] | ... | padding
- +0x316B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x316C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
- +0x3170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3174 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3178 | 63 | char[1] | c | string literal
- +0x3179 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x317A | 00 00 | uint8_t[2] | .. | padding
-
-vtable (reflection.Field):
- +0x317C | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
- +0x317E | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x3180 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x3182 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x3184 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
- +0x3186 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
- +0x3188 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x318A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x318C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x318E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x3190 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x3192 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x3194 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
- +0x3196 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11)
-
-table (reflection.Field):
- +0x3198 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x317C | offset to vtable
- +0x319C | 00 00 00 | uint8_t[3] | ... | padding
- +0x319F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x31A0 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
- +0x31A2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
- +0x31A4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x31C4 | offset to field `name` (string)
- +0x31A8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x31B4 | offset to field `type` (table)
- +0x31AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31B0 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x31B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x31B4 | FC F8 FF FF | SOffset32 | 0xFFFFF8FC (-1796) Loc: +0x38B8 | offset to vtable
- +0x31B8 | 00 00 00 | uint8_t[3] | ... | padding
- +0x31BB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x31BC | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
- +0x31C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x31C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x31C8 | 62 | char[1] | b | string literal
- +0x31C9 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x31CA | 00 00 | uint8_t[2] | .. | padding
-
-vtable (reflection.Field):
- +0x31CC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
- +0x31CE | 14 00 | uint16_t | 0x0014 (20) | size of referring table
- +0x31D0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x31D2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x31D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x31D6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) <defaults to 0> (UShort)
- +0x31D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x31DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x31DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x31DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x31E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x31E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x31E4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
- +0x31E6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11)
-
-table (reflection.Field):
- +0x31E8 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31CC | offset to vtable
- +0x31EC | 00 00 00 | uint8_t[3] | ... | padding
- +0x31EF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x31F0 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3210 | offset to field `name` (string)
- +0x31F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3200 | offset to field `type` (table)
- +0x31F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31FC | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x31FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x3200 | 48 F9 FF FF | SOffset32 | 0xFFFFF948 (-1720) Loc: +0x38B8 | offset to vtable
- +0x3204 | 00 00 00 | uint8_t[3] | ... | padding
- +0x3207 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x3208 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
- +0x320C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3210 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3214 | 61 | char[1] | a | string literal
- +0x3215 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x3216 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Object):
- +0x3218 | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x38E0 | offset to vtable
- +0x321C | 00 00 00 | uint8_t[3] | ... | padding
- +0x321F | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
- +0x3220 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3248 | offset to field `name` (string)
- +0x3224 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x323C | offset to field `fields` (vector)
- +0x3228 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
- +0x322C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int)
- +0x3230 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3238 | offset to field `documentation` (vector)
- +0x3234 | 2C 05 00 00 | UOffset32 | 0x0000052C (1324) Loc: +0x3760 | offset to field `declaration_file` (string)
-
-vector (reflection.Object.documentation):
- +0x3238 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Object.fields):
- +0x323C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x3240 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3264 | offset to table[0]
- +0x3244 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x32B0 | offset to table[1]
-
-string (reflection.Object.name):
- +0x3248 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string
- +0x324C | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal
- +0x3254 | 78 61 6D 70 6C 65 2E 41 | | xample.A
- +0x325C | 62 69 6C 69 74 79 | | bility
- +0x3262 | 00 | char | 0x00 (0) | string terminator
-
-table (reflection.Field):
- +0x3264 | CE FD FF FF | SOffset32 | 0xFFFFFDCE (-562) Loc: +0x3496 | offset to vtable
- +0x3268 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
- +0x326A | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x326C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3288 | offset to field `name` (string)
- +0x3270 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x327C | offset to field `type` (table)
- +0x3274 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3278 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x3278 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x327C | E0 F8 FF FF | SOffset32 | 0xFFFFF8E0 (-1824) Loc: +0x399C | offset to vtable
- +0x3280 | 00 00 00 | uint8_t[3] | ... | padding
- +0x3283 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
- +0x3284 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3288 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
- +0x328C | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal
- +0x3294 | 00 | char | 0x00 (0) | string terminator
-
-vtable (reflection.Field):
- +0x3296 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x3298 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x329A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x329C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x329E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x32A0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) <defaults to 0> (UShort)
- +0x32A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x32A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x32A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x32A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x32AA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8)
- +0x32AC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
- +0x32AE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
-
-table (reflection.Field):
- +0x32B0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3296 | offset to vtable
- +0x32B4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x32B7 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
- +0x32B8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x32FC | offset to field `name` (string)
- +0x32BC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x32F0 | offset to field `type` (table)
- +0x32C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x32CC | offset to field `attributes` (vector)
- +0x32C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32C8 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x32C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Field.attributes):
- +0x32CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x32D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D4 | offset to table[0]
+ +0x2FE8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x2FEC | 69 64 | char[2] | id | string literal
+ +0x2FEE | 00 | char | 0x00 (0) | string terminator
table (reflection.KeyValue):
- +0x32D4 | 70 FD FF FF | SOffset32 | 0xFFFFFD70 (-656) Loc: +0x3564 | offset to vtable
- +0x32D8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32E8 | offset to field `key` (string)
- +0x32DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32E0 | offset to field `value` (string)
+ +0x2FF0 | D4 F6 FF FF | SOffset32 | 0xFFFFF6D4 (-2348) Loc: +0x391C | offset to vtable
+ +0x2FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3004 | offset to field `key` (string)
+ +0x2FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FFC | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x32E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x32E4 | 30 | char[1] | 0 | string literal
- +0x32E5 | 00 | char | 0x00 (0) | string terminator
+ +0x2FFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3000 | 30 | char[1] | 0 | string literal
+ +0x3001 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x32E6 | 00 00 | uint8_t[2] | .. | padding
+ +0x3002 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x32E8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
- +0x32EC | 6B 65 79 | char[3] | key | string literal
- +0x32EF | 00 | char | 0x00 (0) | string terminator
+ +0x3004 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string
+ +0x3008 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal
+ +0x3010 | 65 64 | | ed
+ +0x3012 | 00 | char | 0x00 (0) | string terminator
table (reflection.Type):
- +0x32F0 | 54 F9 FF FF | SOffset32 | 0xFFFFF954 (-1708) Loc: +0x399C | offset to vtable
- +0x32F4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x32F7 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
+ +0x3014 | 78 F5 FF FF | SOffset32 | 0xFFFFF578 (-2696) Loc: +0x3A9C | offset to vtable
+ +0x3018 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x301B | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte)
+ +0x301C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x3020 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x3024 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x3028 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal
+ +0x3030 | 00 | char | 0x00 (0) | string terminator
+
+vtable (reflection.Field):
+ +0x3032 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3034 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
+ +0x3036 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x3038 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x303A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
+ +0x303C | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
+ +0x303E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3042 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3044 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7)
+ +0x3046 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8)
+ +0x3048 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
+ +0x304A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
+
+table (reflection.Field):
+ +0x304C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3032 | offset to vtable
+ +0x3050 | 00 00 | uint8_t[2] | .. | padding
+ +0x3052 | 01 | uint8_t | 0x01 (1) | table field `required` (Bool)
+ +0x3053 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
+ +0x3054 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort)
+ +0x3056 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort)
+ +0x3058 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x30BC | offset to field `name` (string)
+ +0x305C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x30B0 | offset to field `type` (table)
+ +0x3060 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x306C | offset to field `attributes` (vector)
+ +0x3064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3068 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3068 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x306C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x3070 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3094 | offset to table[0]
+ +0x3074 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3078 | offset to table[1]
+
+table (reflection.KeyValue):
+ +0x3078 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x391C | offset to vtable
+ +0x307C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x308C | offset to field `key` (string)
+ +0x3080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3084 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x3084 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3088 | 30 | char[1] | 0 | string literal
+ +0x3089 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x308A | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x308C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+ +0x3090 | 6B 65 79 | char[3] | key | string literal
+ +0x3093 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.KeyValue):
+ +0x3094 | 78 F7 FF FF | SOffset32 | 0xFFFFF778 (-2184) Loc: +0x391C | offset to vtable
+ +0x3098 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30A8 | offset to field `key` (string)
+ +0x309C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30A0 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x30A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x30A4 | 33 | char[1] | 3 | string literal
+ +0x30A5 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x30A6 | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x30A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x30AC | 69 64 | char[2] | id | string literal
+ +0x30AE | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x30B0 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x3D54 | offset to vtable
+ +0x30B4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x30B7 | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte)
+ +0x30B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x30BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x30C0 | 6E 61 6D 65 | char[4] | name | string literal
+ +0x30C4 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x30C5 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Field):
+ +0x30C8 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x312E | offset to vtable
+ +0x30CC | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
+ +0x30CE | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
+ +0x30D0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x3124 | offset to field `name` (string)
+ +0x30D4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3114 | offset to field `type` (table)
+ +0x30D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x30F0 | offset to field `attributes` (vector)
+ +0x30DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30EC | offset to field `documentation` (vector)
+ +0x30E0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long)
+ +0x30E8 | 00 00 00 00 | uint8_t[4] | .... | padding
+
+vector (reflection.Field.documentation):
+ +0x30EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x30F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x30F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30F8 | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x30F8 | DC F7 FF FF | SOffset32 | 0xFFFFF7DC (-2084) Loc: +0x391C | offset to vtable
+ +0x30FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x310C | offset to field `key` (string)
+ +0x3100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3104 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x3104 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3108 | 32 | char[1] | 2 | string literal
+ +0x3109 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x310A | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x310C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x3110 | 69 64 | char[2] | id | string literal
+ +0x3112 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x3114 | 78 F6 FF FF | SOffset32 | 0xFFFFF678 (-2440) Loc: +0x3A9C | offset to vtable
+ +0x3118 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x311B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
+ +0x311C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
+ +0x3120 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x3124 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x3128 | 68 70 | char[2] | hp | string literal
+ +0x312A | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x312B | 00 00 00 | uint8_t[3] | ... | padding
+
+vtable (reflection.Field):
+ +0x312E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3130 | 24 00 | uint16_t | 0x0024 (36) | size of referring table
+ +0x3132 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x3134 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x3136 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
+ +0x3138 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x313A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4)
+ +0x313C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x313E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3140 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3142 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3144 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x3146 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+
+table (reflection.Field):
+ +0x3148 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x312E | offset to vtable
+ +0x314C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+ +0x314E | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort)
+ +0x3150 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x31A4 | offset to field `name` (string)
+ +0x3154 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3194 | offset to field `type` (table)
+ +0x3158 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3170 | offset to field `attributes` (vector)
+ +0x315C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x316C | offset to field `documentation` (vector)
+ +0x3160 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long)
+ +0x3168 | 00 00 00 00 | uint8_t[4] | .... | padding
+
+vector (reflection.Field.documentation):
+ +0x316C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x3170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3174 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3178 | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x3178 | 5C F8 FF FF | SOffset32 | 0xFFFFF85C (-1956) Loc: +0x391C | offset to vtable
+ +0x317C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x318C | offset to field `key` (string)
+ +0x3180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3184 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x3184 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3188 | 31 | char[1] | 1 | string literal
+ +0x3189 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x318A | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x318C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x3190 | 69 64 | char[2] | id | string literal
+ +0x3192 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x3194 | F8 F6 FF FF | SOffset32 | 0xFFFFF6F8 (-2312) Loc: +0x3A9C | offset to vtable
+ +0x3198 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x319B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
+ +0x319C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
+ +0x31A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x31A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x31A8 | 6D 61 6E 61 | char[4] | mana | string literal
+ +0x31AC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x31AD | 00 00 00 | uint8_t[3] | ... | padding
+
+vtable (reflection.Field):
+ +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
+ +0x31B2 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x31B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x31B6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x31B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x31BA | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x31C6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x31C8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x31CA | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11)
+
+table (reflection.Field):
+ +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31B0 | offset to vtable
+ +0x31D0 | 00 | uint8_t[1] | . | padding
+ +0x31D1 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x31D2 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x31D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x321C | offset to field `name` (string)
+ +0x31D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x320C | offset to field `type` (table)
+ +0x31DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x31E8 | offset to field `attributes` (vector)
+ +0x31E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31E4 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x31E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x31E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x31EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31F0 | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x31F0 | D4 F8 FF FF | SOffset32 | 0xFFFFF8D4 (-1836) Loc: +0x391C | offset to vtable
+ +0x31F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3204 | offset to field `key` (string)
+ +0x31F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31FC | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x31FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3200 | 30 | char[1] | 0 | string literal
+ +0x3201 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x3202 | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x3204 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x3208 | 69 64 | char[2] | id | string literal
+ +0x320A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x320C | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x3C70 | offset to vtable
+ +0x3210 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3213 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x3214 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int)
+ +0x3218 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x321C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+ +0x3220 | 70 6F 73 | char[3] | pos | string literal
+ +0x3223 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Object):
+ +0x3224 | 44 F6 FF FF | SOffset32 | 0xFFFFF644 (-2492) Loc: +0x3BE0 | offset to vtable
+ +0x3228 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3248 | offset to field `name` (string)
+ +0x322C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3240 | offset to field `fields` (vector)
+ +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x3234 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x323C | offset to field `documentation` (vector)
+ +0x3238 | E0 08 00 00 | UOffset32 | 0x000008E0 (2272) Loc: +0x3B18 | offset to field `declaration_file` (string)
+
+vector (reflection.Object.documentation):
+ +0x323C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Object.fields):
+ +0x3240 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3244 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3280 | offset to table[0]
+
+string (reflection.Object.name):
+ +0x3248 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string
+ +0x324C | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal
+ +0x3254 | 78 61 6D 70 6C 65 2E 52 | | xample.R
+ +0x325C | 65 66 65 72 72 61 62 6C | | eferrabl
+ +0x3264 | 65 | | e
+ +0x3265 | 00 | char | 0x00 (0) | string terminator
+
+vtable (reflection.Field):
+ +0x3266 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3268 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x326A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x326C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x326E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x3270 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x3272 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3274 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3276 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3278 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x327A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8)
+ +0x327C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x327E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+
+table (reflection.Field):
+ +0x3280 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3266 | offset to vtable
+ +0x3284 | 00 | uint8_t[1] | . | padding
+ +0x3285 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
+ +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x3288 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x32FC | offset to field `name` (string)
+ +0x328C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x32EC | offset to field `type` (table)
+ +0x3290 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x329C | offset to field `attributes` (vector)
+ +0x3294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3298 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3298 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x329C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x32A0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x32C4 | offset to table[0]
+ +0x32A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32A8 | offset to table[1]
+
+table (reflection.KeyValue):
+ +0x32A8 | 8C F9 FF FF | SOffset32 | 0xFFFFF98C (-1652) Loc: +0x391C | offset to vtable
+ +0x32AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32BC | offset to field `key` (string)
+ +0x32B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32B4 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x32B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x32B8 | 30 | char[1] | 0 | string literal
+ +0x32B9 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x32BA | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x32BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+ +0x32C0 | 6B 65 79 | char[3] | key | string literal
+ +0x32C3 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.KeyValue):
+ +0x32C4 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x391C | offset to vtable
+ +0x32C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x32E0 | offset to field `key` (string)
+ +0x32CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D0 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x32D0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x32D4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal
+ +0x32DC | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x32DD | 00 00 00 | uint8_t[3] | ... | padding
+
+string (reflection.KeyValue.key):
+ +0x32E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
+ +0x32E4 | 68 61 73 68 | char[4] | hash | string literal
+ +0x32E8 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x32E9 | 00 00 00 | uint8_t[3] | ... | padding
+
+table (reflection.Type):
+ +0x32EC | 50 F8 FF FF | SOffset32 | 0xFFFFF850 (-1968) Loc: +0x3A9C | offset to vtable
+ +0x32F0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x32F3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte)
+ +0x32F4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+0x32F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
@@ -5841,99 +5799,103 @@
+0x3300 | 69 64 | char[2] | id | string literal
+0x3302 | 00 | char | 0x00 (0) | string terminator
-vtable (reflection.Object):
- +0x3304 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
- +0x3306 | 24 00 | uint16_t | 0x0024 (36) | size of referring table
- +0x3308 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x330A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1)
- +0x330C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2)
- +0x330E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3)
- +0x3310 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4)
- +0x3312 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5)
- +0x3314 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `documentation` (id: 6)
- +0x3316 | 20 00 | VOffset16 | 0x0020 (32) | offset to field `declaration_file` (id: 7)
-
table (reflection.Object):
- +0x3318 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3304 | offset to vtable
- +0x331C | 00 00 00 | uint8_t[3] | ... | padding
- +0x331F | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
- +0x3320 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x3388 | offset to field `name` (string)
- +0x3324 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x336C | offset to field `fields` (vector)
- +0x3328 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int)
- +0x332C | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int)
- +0x3330 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3340 | offset to field `attributes` (vector)
- +0x3334 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x333C | offset to field `documentation` (vector)
- +0x3338 | 28 04 00 00 | UOffset32 | 0x00000428 (1064) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x3304 | 24 F7 FF FF | SOffset32 | 0xFFFFF724 (-2268) Loc: +0x3BE0 | offset to vtable
+ +0x3308 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3330 | offset to field `name` (string)
+ +0x330C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3320 | offset to field `fields` (vector)
+ +0x3310 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x3314 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x331C | offset to field `documentation` (vector)
+ +0x3318 | 00 08 00 00 | UOffset32 | 0x00000800 (2048) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
- +0x333C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-vector (reflection.Object.attributes):
- +0x3340 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x3344 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3348 | offset to table[0]
-
-table (reflection.KeyValue):
- +0x3348 | E4 FD FF FF | SOffset32 | 0xFFFFFDE4 (-540) Loc: +0x3564 | offset to vtable
- +0x334C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x335C | offset to field `key` (string)
- +0x3350 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3354 | offset to field `value` (string)
-
-string (reflection.KeyValue.value):
- +0x3354 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3358 | 38 | char[1] | 8 | string literal
- +0x3359 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x335A | 00 00 | uint8_t[2] | .. | padding
-
-string (reflection.KeyValue.key):
- +0x335C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
- +0x3360 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal
- +0x3368 | 69 67 6E | | ign
- +0x336B | 00 | char | 0x00 (0) | string terminator
+ +0x331C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x336C | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items)
- +0x3370 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3434 | offset to table[0]
- +0x3374 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x33F8 | offset to table[1]
- +0x3378 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33C0 | offset to table[2]
- +0x337C | 60 01 00 00 | UOffset32 | 0x00000160 (352) Loc: +0x34DC | offset to table[3]
- +0x3380 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x34B0 | offset to table[4]
- +0x3384 | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x3468 | offset to table[5]
+ +0x3320 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+ +0x3324 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3364 | offset to table[0]
+ +0x3328 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x33F4 | offset to table[1]
+ +0x332C | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x33C4 | offset to table[2]
string (reflection.Object.name):
- +0x3388 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
- +0x338C | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal
- +0x3394 | 78 61 6D 70 6C 65 2E 56 | | xample.V
- +0x339C | 65 63 33 | | ec3
- +0x339F | 00 | char | 0x00 (0) | string terminator
+ +0x3330 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
+ +0x3334 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal
+ +0x333C | 78 61 6D 70 6C 65 2E 53 | | xample.S
+ +0x3344 | 74 61 74 | | tat
+ +0x3347 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x33A0 | 00 00 | uint8_t[2] | .. | padding
+ +0x3348 | 00 00 | uint8_t[2] | .. | padding
vtable (reflection.Field):
- +0x33A2 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable
- +0x33A4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x33A6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x33A8 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x33AA | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2)
- +0x33AC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3)
- +0x33AE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x33B0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x33B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x33B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x33B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x33B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x33BA | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
- +0x33BC | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11)
- +0x33BE | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12)
+ +0x334A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x334C | 1C 00 | uint16_t | 0x001C (28) | size of referring table
+ +0x334E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x3350 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x3352 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
+ +0x3354 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
+ +0x3356 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3358 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x335A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x335C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x335E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8)
+ +0x3360 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9)
+ +0x3362 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x33C0 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x33A2 | offset to vtable
- +0x33C4 | 00 | uint8_t[1] | . | padding
- +0x33C5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x33C6 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort)
- +0x33C8 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort)
- +0x33CA | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort)
+ +0x3364 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x334A | offset to vtable
+ +0x3368 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x336B | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
+ +0x336C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
+ +0x336E | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
+ +0x3370 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33B8 | offset to field `name` (string)
+ +0x3374 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x33A8 | offset to field `type` (table)
+ +0x3378 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3384 | offset to field `attributes` (vector)
+ +0x337C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3380 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3380 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x3384 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3388 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x338C | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x338C | 70 FA FF FF | SOffset32 | 0xFFFFFA70 (-1424) Loc: +0x391C | offset to vtable
+ +0x3390 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x33A0 | offset to field `key` (string)
+ +0x3394 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3398 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x3398 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x339C | 30 | char[1] | 0 | string literal
+ +0x339D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x339E | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x33A0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+ +0x33A4 | 6B 65 79 | char[3] | key | string literal
+ +0x33A7 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x33A8 | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x3A9C | offset to vtable
+ +0x33AC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x33AF | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte)
+ +0x33B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
+ +0x33B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x33B8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x33BC | 63 6F 75 6E 74 | char[5] | count | string literal
+ +0x33C1 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x33C2 | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x33C4 | 76 FB FF FF | SOffset32 | 0xFFFFFB76 (-1162) Loc: +0x384E | offset to vtable
+ +0x33C8 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+ +0x33CA | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort)
+0x33CC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x33EC | offset to field `name` (string)
+0x33D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x33DC | offset to field `type` (table)
+0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x33D8 | offset to field `documentation` (vector)
@@ -5942,706 +5904,1144 @@
+0x33D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x33DC | 24 FB FF FF | SOffset32 | 0xFFFFFB24 (-1244) Loc: +0x38B8 | offset to vtable
+ +0x33DC | 40 F9 FF FF | SOffset32 | 0xFFFFF940 (-1728) Loc: +0x3A9C | offset to vtable
+0x33E0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x33E3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x33E4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
+ +0x33E3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte)
+ +0x33E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+0x33E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x33EC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x33F0 | 74 65 73 74 33 | char[5] | test3 | string literal
- +0x33F5 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x33F6 | 00 00 | uint8_t[2] | .. | padding
+ +0x33EC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+ +0x33F0 | 76 61 6C | char[3] | val | string literal
+ +0x33F3 | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x33F8 | 7A FD FF FF | SOffset32 | 0xFFFFFD7A (-646) Loc: +0x367E | offset to vtable
- +0x33FC | 00 00 | uint8_t[2] | .. | padding
- +0x33FE | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort)
- +0x3400 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort)
- +0x3402 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort)
- +0x3404 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3428 | offset to field `name` (string)
- +0x3408 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3414 | offset to field `type` (table)
- +0x340C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3410 | offset to field `documentation` (vector)
+ +0x33F4 | B8 F7 FF FF | SOffset32 | 0xFFFFF7B8 (-2120) Loc: +0x3C3C | offset to vtable
+ +0x33F8 | 00 | uint8_t[1] | . | padding
+ +0x33F9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x33FC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3418 | offset to field `name` (string)
+ +0x3400 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x340C | offset to field `type` (table)
+ +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3408 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x3410 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3408 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x3414 | 10 FE FF FF | SOffset32 | 0xFFFFFE10 (-496) Loc: +0x3604 | offset to vtable
- +0x3418 | 00 00 00 | uint8_t[3] | ... | padding
- +0x341B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
- +0x341C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
- +0x3420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x3424 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x340C | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x3D54 | offset to vtable
+ +0x3410 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3413 | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte)
+ +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x3428 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x342C | 74 65 73 74 32 | char[5] | test2 | string literal
- +0x3431 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x3432 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x3434 | 9E FF FF FF | SOffset32 | 0xFFFFFF9E (-98) Loc: +0x3496 | offset to vtable
- +0x3438 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort)
- +0x343A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort)
- +0x343C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x345C | offset to field `name` (string)
- +0x3440 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x344C | offset to field `type` (table)
- +0x3444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3448 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x3448 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x344C | 68 FD FF FF | SOffset32 | 0xFFFFFD68 (-664) Loc: +0x36E4 | offset to vtable
- +0x3450 | 00 00 00 | uint8_t[3] | ... | padding
- +0x3453 | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte)
- +0x3454 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
- +0x3458 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x345C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x3460 | 74 65 73 74 31 | char[5] | test1 | string literal
- +0x3465 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x3466 | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x3468 | EA FD FF FF | SOffset32 | 0xFFFFFDEA (-534) Loc: +0x367E | offset to vtable
- +0x346C | 00 00 | uint8_t[2] | .. | padding
- +0x346E | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
- +0x3470 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
- +0x3472 | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort)
- +0x3474 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3490 | offset to field `name` (string)
- +0x3478 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3484 | offset to field `type` (table)
- +0x347C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3480 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x3480 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x3484 | E8 FA FF FF | SOffset32 | 0xFFFFFAE8 (-1304) Loc: +0x399C | offset to vtable
- +0x3488 | 00 00 00 | uint8_t[3] | ... | padding
- +0x348B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
- +0x348C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x3490 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3494 | 7A | char[1] | z | string literal
- +0x3495 | 00 | char | 0x00 (0) | string terminator
-
-vtable (reflection.Field):
- +0x3496 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x3498 | 14 00 | uint16_t | 0x0014 (20) | size of referring table
- +0x349A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x349C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x349E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
- +0x34A0 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x34A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x34A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x34A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x34A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x34AA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x34AC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x34AE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
-
-table (reflection.Field):
- +0x34B0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3496 | offset to vtable
- +0x34B4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
- +0x34B6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x34B8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x34D4 | offset to field `name` (string)
- +0x34BC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x34C8 | offset to field `type` (table)
- +0x34C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x34C4 | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x34C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x34C8 | 2C FB FF FF | SOffset32 | 0xFFFFFB2C (-1236) Loc: +0x399C | offset to vtable
- +0x34CC | 00 00 00 | uint8_t[3] | ... | padding
- +0x34CF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
- +0x34D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x34D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x34D8 | 79 | char[1] | y | string literal
- +0x34D9 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x34DA | 00 00 | uint8_t[2] | .. | padding
-
-table (reflection.Field):
- +0x34DC | 6E FB FF FF | SOffset32 | 0xFFFFFB6E (-1170) Loc: +0x396E | offset to vtable
- +0x34E0 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x34FC | offset to field `name` (string)
- +0x34E4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x34F0 | offset to field `type` (table)
- +0x34E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x34EC | offset to field `documentation` (vector)
-
-vector (reflection.Field.documentation):
- +0x34EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
-
-table (reflection.Type):
- +0x34F0 | 54 FB FF FF | SOffset32 | 0xFFFFFB54 (-1196) Loc: +0x399C | offset to vtable
- +0x34F4 | 00 00 00 | uint8_t[3] | ... | padding
- +0x34F7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
- +0x34F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
-
-string (reflection.Field.name):
- +0x34FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3500 | 78 | char[1] | x | string literal
- +0x3501 | 00 | char | 0x00 (0) | string terminator
-
-padding:
- +0x3502 | 00 00 | uint8_t[2] | .. | padding
-
-vtable (reflection.Object):
- +0x3504 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
- +0x3506 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
- +0x3508 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0)
- +0x350A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1)
- +0x350C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) <defaults to 0> (Bool)
- +0x350E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3)
- +0x3510 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) <defaults to 0> (Int)
- +0x3512 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5)
- +0x3514 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 6)
- +0x3516 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7)
+ +0x3418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x341C | 69 64 | char[2] | id | string literal
+ +0x341E | 00 | char | 0x00 (0) | string terminator
table (reflection.Object):
- +0x3518 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3504 | offset to vtable
- +0x351C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x359C | offset to field `name` (string)
- +0x3520 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x3594 | offset to field `fields` (vector)
- +0x3524 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3538 | offset to field `attributes` (vector)
- +0x352C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3534 | offset to field `documentation` (vector)
- +0x3530 | 30 02 00 00 | UOffset32 | 0x00000230 (560) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x3420 | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x3C98 | offset to vtable
+ +0x3424 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3427 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
+ +0x3428 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x344C | offset to field `name` (string)
+ +0x342C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3444 | offset to field `fields` (vector)
+ +0x3430 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
+ +0x3434 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int)
+ +0x3438 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3440 | offset to field `documentation` (vector)
+ +0x343C | DC 06 00 00 | UOffset32 | 0x000006DC (1756) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
- +0x3534 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3440 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Object.fields):
+ +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3448 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3478 | offset to table[0]
+
+string (reflection.Object.name):
+ +0x344C | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string
+ +0x3450 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal
+ +0x3458 | 78 61 6D 70 6C 65 2E 53 | | xample.S
+ +0x3460 | 74 72 75 63 74 4F 66 53 | | tructOfS
+ +0x3468 | 74 72 75 63 74 73 4F 66 | | tructsOf
+ +0x3470 | 53 74 72 75 63 74 73 | | Structs
+ +0x3477 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x3478 | F4 FE FF FF | SOffset32 | 0xFFFFFEF4 (-268) Loc: +0x3584 | offset to vtable
+ +0x347C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x347F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x3480 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x34A0 | offset to field `name` (string)
+ +0x3484 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3490 | offset to field `type` (table)
+ +0x3488 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x348C | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x348C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x3490 | 20 F8 FF FF | SOffset32 | 0xFFFFF820 (-2016) Loc: +0x3C70 | offset to vtable
+ +0x3494 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3497 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x3498 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int)
+ +0x349C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x34A4 | 61 | char[1] | a | string literal
+ +0x34A5 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x34A6 | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Object):
+ +0x34A8 | 10 F8 FF FF | SOffset32 | 0xFFFFF810 (-2032) Loc: +0x3C98 | offset to vtable
+ +0x34AC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x34AF | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
+ +0x34B0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x34DC | offset to field `name` (string)
+ +0x34B4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x34CC | offset to field `fields` (vector)
+ +0x34B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
+ +0x34BC | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int)
+ +0x34C0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x34C8 | offset to field `documentation` (vector)
+ +0x34C4 | 54 06 00 00 | UOffset32 | 0x00000654 (1620) Loc: +0x3B18 | offset to field `declaration_file` (string)
+
+vector (reflection.Object.documentation):
+ +0x34C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Object.fields):
+ +0x34CC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+ +0x34D0 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x35A0 | offset to table[0]
+ +0x34D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x3550 | offset to table[1]
+ +0x34D8 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3500 | offset to table[2]
+
+string (reflection.Object.name):
+ +0x34DC | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string
+ +0x34E0 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal
+ +0x34E8 | 78 61 6D 70 6C 65 2E 53 | | xample.S
+ +0x34F0 | 74 72 75 63 74 4F 66 53 | | tructOfS
+ +0x34F8 | 74 72 75 63 74 73 | | tructs
+ +0x34FE | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x3500 | CC FF FF FF | SOffset32 | 0xFFFFFFCC (-52) Loc: +0x3534 | offset to vtable
+ +0x3504 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3507 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x3508 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
+ +0x350A | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort)
+ +0x350C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x352C | offset to field `name` (string)
+ +0x3510 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x351C | offset to field `type` (table)
+ +0x3514 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3518 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3518 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x351C | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x3C70 | offset to vtable
+ +0x3520 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3523 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x3524 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
+ +0x3528 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x352C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3530 | 63 | char[1] | c | string literal
+ +0x3531 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x3532 | 00 00 | uint8_t[2] | .. | padding
+
+vtable (reflection.Field):
+ +0x3534 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
+ +0x3536 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x3538 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x353A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x353C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2)
+ +0x353E | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3)
+ +0x3540 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3542 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3544 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3546 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3548 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x354A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x354C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x354E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11)
+
+table (reflection.Field):
+ +0x3550 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3534 | offset to vtable
+ +0x3554 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3557 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x3558 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+ +0x355A | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
+ +0x355C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x357C | offset to field `name` (string)
+ +0x3560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x356C | offset to field `type` (table)
+ +0x3564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3568 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x356C | FC F8 FF FF | SOffset32 | 0xFFFFF8FC (-1796) Loc: +0x3C70 | offset to vtable
+ +0x3570 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3573 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x3574 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
+ +0x3578 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x357C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3580 | 62 | char[1] | b | string literal
+ +0x3581 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x3582 | 00 00 | uint8_t[2] | .. | padding
+
+vtable (reflection.Field):
+ +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
+ +0x3586 | 14 00 | uint16_t | 0x0014 (20) | size of referring table
+ +0x3588 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x358A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x358C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x358E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) <defaults to 0> (UShort)
+ +0x3590 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3592 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3594 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3596 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3598 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x359A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x359C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
+ +0x359E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11)
+
+table (reflection.Field):
+ +0x35A0 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3584 | offset to vtable
+ +0x35A4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x35A7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x35A8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x35C8 | offset to field `name` (string)
+ +0x35AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x35B8 | offset to field `type` (table)
+ +0x35B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x35B4 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x35B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x35B8 | 48 F9 FF FF | SOffset32 | 0xFFFFF948 (-1720) Loc: +0x3C70 | offset to vtable
+ +0x35BC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x35BF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x35C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int)
+ +0x35C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x35CC | 61 | char[1] | a | string literal
+ +0x35CD | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x35CE | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Object):
+ +0x35D0 | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x3C98 | offset to vtable
+ +0x35D4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x35D7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
+ +0x35D8 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3600 | offset to field `name` (string)
+ +0x35DC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x35F4 | offset to field `fields` (vector)
+ +0x35E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
+ +0x35E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int)
+ +0x35E8 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x35F0 | offset to field `documentation` (vector)
+ +0x35EC | 2C 05 00 00 | UOffset32 | 0x0000052C (1324) Loc: +0x3B18 | offset to field `declaration_file` (string)
+
+vector (reflection.Object.documentation):
+ +0x35F0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Object.fields):
+ +0x35F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x35F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x361C | offset to table[0]
+ +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x3668 | offset to table[1]
+
+string (reflection.Object.name):
+ +0x3600 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string
+ +0x3604 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal
+ +0x360C | 78 61 6D 70 6C 65 2E 41 | | xample.A
+ +0x3614 | 62 69 6C 69 74 79 | | bility
+ +0x361A | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Field):
+ +0x361C | CE FD FF FF | SOffset32 | 0xFFFFFDCE (-562) Loc: +0x384E | offset to vtable
+ +0x3620 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+ +0x3622 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x3624 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3640 | offset to field `name` (string)
+ +0x3628 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3634 | offset to field `type` (table)
+ +0x362C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3630 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3630 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x3634 | E0 F8 FF FF | SOffset32 | 0xFFFFF8E0 (-1824) Loc: +0x3D54 | offset to vtable
+ +0x3638 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x363B | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
+ +0x363C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x3640 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string
+ +0x3644 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal
+ +0x364C | 00 | char | 0x00 (0) | string terminator
+
+vtable (reflection.Field):
+ +0x364E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3650 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x3652 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x3654 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x3656 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x3658 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) <defaults to 0> (UShort)
+ +0x365A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x365C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x365E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3660 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3662 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8)
+ +0x3664 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9)
+ +0x3666 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+
+table (reflection.Field):
+ +0x3668 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x364E | offset to vtable
+ +0x366C | 00 00 00 | uint8_t[3] | ... | padding
+ +0x366F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool)
+ +0x3670 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x36B4 | offset to field `name` (string)
+ +0x3674 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x36A8 | offset to field `type` (table)
+ +0x3678 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3684 | offset to field `attributes` (vector)
+ +0x367C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3680 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3680 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Field.attributes):
+ +0x3684 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3688 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x368C | offset to table[0]
+
+table (reflection.KeyValue):
+ +0x368C | 70 FD FF FF | SOffset32 | 0xFFFFFD70 (-656) Loc: +0x391C | offset to vtable
+ +0x3690 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x36A0 | offset to field `key` (string)
+ +0x3694 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3698 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x3698 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x369C | 30 | char[1] | 0 | string literal
+ +0x369D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x369E | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x36A0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+ +0x36A4 | 6B 65 79 | char[3] | key | string literal
+ +0x36A7 | 00 | char | 0x00 (0) | string terminator
+
+table (reflection.Type):
+ +0x36A8 | 54 F9 FF FF | SOffset32 | 0xFFFFF954 (-1708) Loc: +0x3D54 | offset to vtable
+ +0x36AC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x36AF | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte)
+ +0x36B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x36B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string
+ +0x36B8 | 69 64 | char[2] | id | string literal
+ +0x36BA | 00 | char | 0x00 (0) | string terminator
+
+vtable (reflection.Object):
+ +0x36BC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
+ +0x36BE | 24 00 | uint16_t | 0x0024 (36) | size of referring table
+ +0x36C0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x36C2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1)
+ +0x36C4 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2)
+ +0x36C6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3)
+ +0x36C8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4)
+ +0x36CA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5)
+ +0x36CC | 1C 00 | VOffset16 | 0x001C (28) | offset to field `documentation` (id: 6)
+ +0x36CE | 20 00 | VOffset16 | 0x0020 (32) | offset to field `declaration_file` (id: 7)
+
+table (reflection.Object):
+ +0x36D0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x36BC | offset to vtable
+ +0x36D4 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x36D7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
+ +0x36D8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x3740 | offset to field `name` (string)
+ +0x36DC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3724 | offset to field `fields` (vector)
+ +0x36E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int)
+ +0x36E4 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int)
+ +0x36E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x36F8 | offset to field `attributes` (vector)
+ +0x36EC | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x36F4 | offset to field `documentation` (vector)
+ +0x36F0 | 28 04 00 00 | UOffset32 | 0x00000428 (1064) Loc: +0x3B18 | offset to field `declaration_file` (string)
+
+vector (reflection.Object.documentation):
+ +0x36F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.attributes):
- +0x3538 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x353C | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x356C | offset to table[0]
- +0x3540 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3544 | offset to table[1]
+ +0x36F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x36FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3700 | offset to table[0]
table (reflection.KeyValue):
- +0x3544 | E0 FF FF FF | SOffset32 | 0xFFFFFFE0 (-32) Loc: +0x3564 | offset to vtable
- +0x3548 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3558 | offset to field `key` (string)
- +0x354C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3550 | offset to field `value` (string)
+ +0x3700 | E4 FD FF FF | SOffset32 | 0xFFFFFDE4 (-540) Loc: +0x391C | offset to vtable
+ +0x3704 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3714 | offset to field `key` (string)
+ +0x3708 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x370C | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x3550 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3554 | 30 | char[1] | 0 | string literal
- +0x3555 | 00 | char | 0x00 (0) | string terminator
+ +0x370C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3710 | 38 | char[1] | 8 | string literal
+ +0x3711 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x3556 | 00 00 | uint8_t[2] | .. | padding
+ +0x3712 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x3558 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
- +0x355C | 70 72 69 76 61 74 65 | char[7] | private | string literal
- +0x3563 | 00 | char | 0x00 (0) | string terminator
+ +0x3714 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string
+ +0x3718 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal
+ +0x3720 | 69 67 6E | | ign
+ +0x3723 | 00 | char | 0x00 (0) | string terminator
+
+vector (reflection.Object.fields):
+ +0x3724 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items)
+ +0x3728 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x37EC | offset to table[0]
+ +0x372C | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x37B0 | offset to table[1]
+ +0x3730 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3778 | offset to table[2]
+ +0x3734 | 60 01 00 00 | UOffset32 | 0x00000160 (352) Loc: +0x3894 | offset to table[3]
+ +0x3738 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x3868 | offset to table[4]
+ +0x373C | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x3820 | offset to table[5]
+
+string (reflection.Object.name):
+ +0x3740 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
+ +0x3744 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal
+ +0x374C | 78 61 6D 70 6C 65 2E 56 | | xample.V
+ +0x3754 | 65 63 33 | | ec3
+ +0x3757 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x3758 | 00 00 | uint8_t[2] | .. | padding
+
+vtable (reflection.Field):
+ +0x375A | 1E 00 | uint16_t | 0x001E (30) | size of this vtable
+ +0x375C | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x375E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x3760 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x3762 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2)
+ +0x3764 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3)
+ +0x3766 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3768 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x376A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x376C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x376E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3770 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x3772 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x3774 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11)
+ +0x3776 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12)
+
+table (reflection.Field):
+ +0x3778 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x375A | offset to vtable
+ +0x377C | 00 | uint8_t[1] | . | padding
+ +0x377D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x377E | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort)
+ +0x3780 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort)
+ +0x3782 | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort)
+ +0x3784 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x37A4 | offset to field `name` (string)
+ +0x3788 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3794 | offset to field `type` (table)
+ +0x378C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3790 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3790 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x3794 | 24 FB FF FF | SOffset32 | 0xFFFFFB24 (-1244) Loc: +0x3C70 | offset to vtable
+ +0x3798 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x379B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x379C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int)
+ +0x37A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x37A4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x37A8 | 74 65 73 74 33 | char[5] | test3 | string literal
+ +0x37AD | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x37AE | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x37B0 | 7A FD FF FF | SOffset32 | 0xFFFFFD7A (-646) Loc: +0x3A36 | offset to vtable
+ +0x37B4 | 00 00 | uint8_t[2] | .. | padding
+ +0x37B6 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort)
+ +0x37B8 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort)
+ +0x37BA | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort)
+ +0x37BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x37E0 | offset to field `name` (string)
+ +0x37C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x37CC | offset to field `type` (table)
+ +0x37C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x37C8 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x37C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x37CC | 10 FE FF FF | SOffset32 | 0xFFFFFE10 (-496) Loc: +0x39BC | offset to vtable
+ +0x37D0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x37D3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
+ +0x37D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
+ +0x37D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x37DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x37E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x37E4 | 74 65 73 74 32 | char[5] | test2 | string literal
+ +0x37E9 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x37EA | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x37EC | 9E FF FF FF | SOffset32 | 0xFFFFFF9E (-98) Loc: +0x384E | offset to vtable
+ +0x37F0 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort)
+ +0x37F2 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort)
+ +0x37F4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3814 | offset to field `name` (string)
+ +0x37F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3804 | offset to field `type` (table)
+ +0x37FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3800 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3800 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x3804 | 68 FD FF FF | SOffset32 | 0xFFFFFD68 (-664) Loc: +0x3A9C | offset to vtable
+ +0x3808 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x380B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte)
+ +0x380C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt)
+ +0x3810 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x3814 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x3818 | 74 65 73 74 31 | char[5] | test1 | string literal
+ +0x381D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x381E | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x3820 | EA FD FF FF | SOffset32 | 0xFFFFFDEA (-534) Loc: +0x3A36 | offset to vtable
+ +0x3824 | 00 00 | uint8_t[2] | .. | padding
+ +0x3826 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort)
+ +0x3828 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort)
+ +0x382A | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort)
+ +0x382C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3848 | offset to field `name` (string)
+ +0x3830 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x383C | offset to field `type` (table)
+ +0x3834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3838 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x3838 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x383C | E8 FA FF FF | SOffset32 | 0xFFFFFAE8 (-1304) Loc: +0x3D54 | offset to vtable
+ +0x3840 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3843 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x3844 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x3848 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x384C | 7A | char[1] | z | string literal
+ +0x384D | 00 | char | 0x00 (0) | string terminator
+
+vtable (reflection.Field):
+ +0x384E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3850 | 14 00 | uint16_t | 0x0014 (20) | size of referring table
+ +0x3852 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x3854 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x3856 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2)
+ +0x3858 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x385A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x385C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x385E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3860 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3862 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3864 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x3866 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
+
+table (reflection.Field):
+ +0x3868 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x384E | offset to vtable
+ +0x386C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+ +0x386E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x3870 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x388C | offset to field `name` (string)
+ +0x3874 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3880 | offset to field `type` (table)
+ +0x3878 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x387C | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x387C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x3880 | 2C FB FF FF | SOffset32 | 0xFFFFFB2C (-1236) Loc: +0x3D54 | offset to vtable
+ +0x3884 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3887 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x3888 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x388C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3890 | 79 | char[1] | y | string literal
+ +0x3891 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x3892 | 00 00 | uint8_t[2] | .. | padding
+
+table (reflection.Field):
+ +0x3894 | 6E FB FF FF | SOffset32 | 0xFFFFFB6E (-1170) Loc: +0x3D26 | offset to vtable
+ +0x3898 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x38B4 | offset to field `name` (string)
+ +0x389C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x38A8 | offset to field `type` (table)
+ +0x38A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38A4 | offset to field `documentation` (vector)
+
+vector (reflection.Field.documentation):
+ +0x38A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+table (reflection.Type):
+ +0x38A8 | 54 FB FF FF | SOffset32 | 0xFFFFFB54 (-1196) Loc: +0x3D54 | offset to vtable
+ +0x38AC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x38AF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte)
+ +0x38B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+
+string (reflection.Field.name):
+ +0x38B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x38B8 | 78 | char[1] | x | string literal
+ +0x38B9 | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x38BA | 00 00 | uint8_t[2] | .. | padding
+
+vtable (reflection.Object):
+ +0x38BC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
+ +0x38BE | 1C 00 | uint16_t | 0x001C (28) | size of referring table
+ +0x38C0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0)
+ +0x38C2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1)
+ +0x38C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) <defaults to 0> (Bool)
+ +0x38C6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3)
+ +0x38C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) <defaults to 0> (Int)
+ +0x38CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5)
+ +0x38CC | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 6)
+ +0x38CE | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7)
+
+table (reflection.Object):
+ +0x38D0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x38BC | offset to vtable
+ +0x38D4 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x3954 | offset to field `name` (string)
+ +0x38D8 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x394C | offset to field `fields` (vector)
+ +0x38DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x38E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x38F0 | offset to field `attributes` (vector)
+ +0x38E4 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x38EC | offset to field `documentation` (vector)
+ +0x38E8 | 30 02 00 00 | UOffset32 | 0x00000230 (560) Loc: +0x3B18 | offset to field `declaration_file` (string)
+
+vector (reflection.Object.documentation):
+ +0x38EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+
+vector (reflection.Object.attributes):
+ +0x38F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x38F4 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3924 | offset to table[0]
+ +0x38F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38FC | offset to table[1]
+
+table (reflection.KeyValue):
+ +0x38FC | E0 FF FF FF | SOffset32 | 0xFFFFFFE0 (-32) Loc: +0x391C | offset to vtable
+ +0x3900 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3910 | offset to field `key` (string)
+ +0x3904 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3908 | offset to field `value` (string)
+
+string (reflection.KeyValue.value):
+ +0x3908 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x390C | 30 | char[1] | 0 | string literal
+ +0x390D | 00 | char | 0x00 (0) | string terminator
+
+padding:
+ +0x390E | 00 00 | uint8_t[2] | .. | padding
+
+string (reflection.KeyValue.key):
+ +0x3910 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+ +0x3914 | 70 72 69 76 61 74 65 | char[7] | private | string literal
+ +0x391B | 00 | char | 0x00 (0) | string terminator
vtable (reflection.KeyValue):
- +0x3564 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
- +0x3566 | 0C 00 | uint16_t | 0x000C (12) | size of referring table
- +0x3568 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0)
- +0x356A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1)
+ +0x391C | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+ +0x391E | 0C 00 | uint16_t | 0x000C (12) | size of referring table
+ +0x3920 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0)
+ +0x3922 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1)
table (reflection.KeyValue):
- +0x356C | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x3564 | offset to vtable
- +0x3570 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3580 | offset to field `key` (string)
- +0x3574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3578 | offset to field `value` (string)
+ +0x3924 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x391C | offset to vtable
+ +0x3928 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3938 | offset to field `key` (string)
+ +0x392C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3930 | offset to field `value` (string)
string (reflection.KeyValue.value):
- +0x3578 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x357C | 30 | char[1] | 0 | string literal
- +0x357D | 00 | char | 0x00 (0) | string terminator
+ +0x3930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3934 | 30 | char[1] | 0 | string literal
+ +0x3935 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x357E | 00 00 | uint8_t[2] | .. | padding
+ +0x3936 | 00 00 | uint8_t[2] | .. | padding
string (reflection.KeyValue.key):
- +0x3580 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string
- +0x3584 | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal
- +0x358C | 61 72 74 69 61 6C | | artial
- +0x3592 | 00 | char | 0x00 (0) | string terminator
+ +0x3938 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string
+ +0x393C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal
+ +0x3944 | 61 72 74 69 61 6C | | artial
+ +0x394A | 00 | char | 0x00 (0) | string terminator
vector (reflection.Object.fields):
- +0x3594 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x3598 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x35E4 | offset to table[0]
+ +0x394C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3950 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x399C | offset to table[0]
string (reflection.Object.name):
- +0x359C | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string
- +0x35A0 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal
- +0x35A8 | 78 61 6D 70 6C 65 2E 54 | | xample.T
- +0x35B0 | 65 73 74 53 69 6D 70 6C | | estSimpl
- +0x35B8 | 65 54 61 62 6C 65 57 69 | | eTableWi
- +0x35C0 | 74 68 45 6E 75 6D | | thEnum
- +0x35C6 | 00 | char | 0x00 (0) | string terminator
+ +0x3954 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string
+ +0x3958 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal
+ +0x3960 | 78 61 6D 70 6C 65 2E 54 | | xample.T
+ +0x3968 | 65 73 74 53 69 6D 70 6C | | estSimpl
+ +0x3970 | 65 54 61 62 6C 65 57 69 | | eTableWi
+ +0x3978 | 74 68 45 6E 75 6D | | thEnum
+ +0x397E | 00 | char | 0x00 (0) | string terminator
padding:
- +0x35C7 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x397F | 00 00 00 | uint8_t[3] | ... | padding
vtable (reflection.Field):
- +0x35CA | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x35CC | 1C 00 | uint16_t | 0x001C (28) | size of referring table
- +0x35CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x35D0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x35D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x35D4 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x35D6 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4)
- +0x35D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x35DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x35DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x35DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x35E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x35E2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
+ +0x3982 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3984 | 1C 00 | uint16_t | 0x001C (28) | size of referring table
+ +0x3986 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x3988 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x398A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x398C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x398E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4)
+ +0x3990 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3992 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3994 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3996 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3998 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x399A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x35E4 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x35CA | offset to vtable
- +0x35E8 | 00 00 | uint8_t[2] | .. | padding
- +0x35EA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x35EC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3628 | offset to field `name` (string)
- +0x35F0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3614 | offset to field `type` (table)
- +0x35F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3600 | offset to field `documentation` (vector)
- +0x35F8 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long)
+ +0x399C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3982 | offset to vtable
+ +0x39A0 | 00 00 | uint8_t[2] | .. | padding
+ +0x39A2 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x39A4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x39E0 | offset to field `name` (string)
+ +0x39A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x39CC | offset to field `type` (table)
+ +0x39AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x39B8 | offset to field `documentation` (vector)
+ +0x39B0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long)
vector (reflection.Field.documentation):
- +0x3600 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x39B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vtable (reflection.Type):
- +0x3604 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
- +0x3606 | 14 00 | uint16_t | 0x0014 (20) | size of referring table
- +0x3608 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
- +0x360A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
- +0x360C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2)
- +0x360E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
- +0x3610 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4)
- +0x3612 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5)
+ +0x39BC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
+ +0x39BE | 14 00 | uint16_t | 0x0014 (20) | size of referring table
+ +0x39C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
+ +0x39C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
+ +0x39C4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2)
+ +0x39C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
+ +0x39C8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4)
+ +0x39CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5)
table (reflection.Type):
- +0x3614 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3604 | offset to vtable
- +0x3618 | 00 00 00 | uint8_t[3] | ... | padding
- +0x361B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
- +0x361C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
- +0x3620 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x3624 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x39CC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x39BC | offset to vtable
+ +0x39D0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x39D3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte)
+ +0x39D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int)
+ +0x39D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x39DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x3628 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
- +0x362C | 63 6F 6C 6F 72 | char[5] | color | string literal
- +0x3631 | 00 | char | 0x00 (0) | string terminator
+ +0x39E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+ +0x39E4 | 63 6F 6C 6F 72 | char[5] | color | string literal
+ +0x39E9 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x3632 | 00 00 | uint8_t[2] | .. | padding
+ +0x39EA | 00 00 | uint8_t[2] | .. | padding
table (reflection.Object):
- +0x3634 | 54 FD FF FF | SOffset32 | 0xFFFFFD54 (-684) Loc: +0x38E0 | offset to vtable
- +0x3638 | 00 00 00 | uint8_t[3] | ... | padding
- +0x363B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
- +0x363C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3664 | offset to field `name` (string)
- +0x3640 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3658 | offset to field `fields` (vector)
- +0x3644 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int)
- +0x3648 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int)
- +0x364C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3654 | offset to field `documentation` (vector)
- +0x3650 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x39EC | 54 FD FF FF | SOffset32 | 0xFFFFFD54 (-684) Loc: +0x3C98 | offset to vtable
+ +0x39F0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x39F3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
+ +0x39F4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3A1C | offset to field `name` (string)
+ +0x39F8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3A10 | offset to field `fields` (vector)
+ +0x39FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int)
+ +0x3A00 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int)
+ +0x3A04 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3A0C | offset to field `documentation` (vector)
+ +0x3A08 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
- +0x3654 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3A0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x3658 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
- +0x365C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x36D0 | offset to table[0]
- +0x3660 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x369C | offset to table[1]
+ +0x3A10 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+ +0x3A14 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x3A88 | offset to table[0]
+ +0x3A18 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3A54 | offset to table[1]
string (reflection.Object.name):
- +0x3664 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
- +0x3668 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal
- +0x3670 | 78 61 6D 70 6C 65 2E 54 | | xample.T
- +0x3678 | 65 73 74 | | est
- +0x367B | 00 | char | 0x00 (0) | string terminator
+ +0x3A1C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string
+ +0x3A20 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal
+ +0x3A28 | 78 61 6D 70 6C 65 2E 54 | | xample.T
+ +0x3A30 | 65 73 74 | | est
+ +0x3A33 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x367C | 00 00 | uint8_t[2] | .. | padding
+ +0x3A34 | 00 00 | uint8_t[2] | .. | padding
vtable (reflection.Field):
- +0x367E | 1E 00 | uint16_t | 0x001E (30) | size of this vtable
- +0x3680 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x3682 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
- +0x3684 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
- +0x3686 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2)
- +0x3688 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3)
- +0x368A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x368C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x368E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x3690 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x3692 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x3694 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x3696 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
- +0x3698 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) <defaults to 0> (Bool)
- +0x369A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12)
+ +0x3A36 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable
+ +0x3A38 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x3A3A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0)
+ +0x3A3C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1)
+ +0x3A3E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2)
+ +0x3A40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3)
+ +0x3A42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3A44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3A46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3A4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3A4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x3A4E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10)
+ +0x3A50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) <defaults to 0> (Bool)
+ +0x3A52 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12)
table (reflection.Field):
- +0x369C | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x367E | offset to vtable
- +0x36A0 | 00 00 | uint8_t[2] | .. | padding
- +0x36A2 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
- +0x36A4 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort)
- +0x36A6 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort)
- +0x36A8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x36C8 | offset to field `name` (string)
- +0x36AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x36B8 | offset to field `type` (table)
- +0x36B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x36B4 | offset to field `documentation` (vector)
+ +0x3A54 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x3A36 | offset to vtable
+ +0x3A58 | 00 00 | uint8_t[2] | .. | padding
+ +0x3A5A | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort)
+ +0x3A5C | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort)
+ +0x3A5E | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort)
+ +0x3A60 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3A80 | offset to field `name` (string)
+ +0x3A64 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3A70 | offset to field `type` (table)
+ +0x3A68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3A6C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x36B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3A6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x36B8 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x36E4 | offset to vtable
- +0x36BC | 00 00 00 | uint8_t[3] | ... | padding
- +0x36BF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte)
- +0x36C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
- +0x36C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x3A70 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x3A9C | offset to vtable
+ +0x3A74 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3A77 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte)
+ +0x3A78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt)
+ +0x3A7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x36C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x36CC | 62 | char[1] | b | string literal
- +0x36CD | 00 | char | 0x00 (0) | string terminator
+ +0x3A80 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3A84 | 62 | char[1] | b | string literal
+ +0x3A85 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x36CE | 00 00 | uint8_t[2] | .. | padding
+ +0x3A86 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Field):
- +0x36D0 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x396E | offset to vtable
- +0x36D4 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3704 | offset to field `name` (string)
- +0x36D8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x36F4 | offset to field `type` (table)
- +0x36DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x36E0 | offset to field `documentation` (vector)
+ +0x3A88 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x3D26 | offset to vtable
+ +0x3A8C | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3ABC | offset to field `name` (string)
+ +0x3A90 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3AAC | offset to field `type` (table)
+ +0x3A94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3A98 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x36E0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3A98 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vtable (reflection.Type):
- +0x36E4 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
- +0x36E6 | 10 00 | uint16_t | 0x0010 (16) | size of referring table
- +0x36E8 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
- +0x36EA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
- +0x36EC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) <defaults to -1> (Int)
- +0x36EE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
- +0x36F0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4)
- +0x36F2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5)
+ +0x3A9C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
+ +0x3A9E | 10 00 | uint16_t | 0x0010 (16) | size of referring table
+ +0x3AA0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
+ +0x3AA2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
+ +0x3AA4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) <defaults to -1> (Int)
+ +0x3AA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
+ +0x3AA8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4)
+ +0x3AAA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5)
table (reflection.Type):
- +0x36F4 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x36E4 | offset to vtable
- +0x36F8 | 00 00 00 | uint8_t[3] | ... | padding
- +0x36FB | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
- +0x36FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
- +0x3700 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x3AAC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3A9C | offset to vtable
+ +0x3AB0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3AB3 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte)
+ +0x3AB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt)
+ +0x3AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x3704 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3708 | 61 | char[1] | a | string literal
- +0x3709 | 00 | char | 0x00 (0) | string terminator
+ +0x3ABC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3AC0 | 61 | char[1] | a | string literal
+ +0x3AC1 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x370A | 00 00 | uint8_t[2] | .. | padding
+ +0x3AC2 | 00 00 | uint8_t[2] | .. | padding
table (reflection.Object):
- +0x370C | E4 FE FF FF | SOffset32 | 0xFFFFFEE4 (-284) Loc: +0x3828 | offset to vtable
- +0x3710 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x372C | offset to field `name` (string)
- +0x3714 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3728 | offset to field `fields` (vector)
- +0x3718 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x371C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3724 | offset to field `documentation` (vector)
- +0x3720 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x3AC4 | E4 FE FF FF | SOffset32 | 0xFFFFFEE4 (-284) Loc: +0x3BE0 | offset to vtable
+ +0x3AC8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3AE4 | offset to field `name` (string)
+ +0x3ACC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3AE0 | offset to field `fields` (vector)
+ +0x3AD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x3AD4 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3ADC | offset to field `documentation` (vector)
+ +0x3AD8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3B18 | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
- +0x3724 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3ADC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x3728 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3AE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
string (reflection.Object.name):
- +0x372C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string
- +0x3730 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal
- +0x3738 | 78 61 6D 70 6C 65 32 2E | | xample2.
- +0x3740 | 4D 6F 6E 73 74 65 72 | | Monster
- +0x3747 | 00 | char | 0x00 (0) | string terminator
+ +0x3AE4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string
+ +0x3AE8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal
+ +0x3AF0 | 78 61 6D 70 6C 65 32 2E | | xample2.
+ +0x3AF8 | 4D 6F 6E 73 74 65 72 | | Monster
+ +0x3AFF | 00 | char | 0x00 (0) | string terminator
table (reflection.Object):
- +0x3748 | 20 FF FF FF | SOffset32 | 0xFFFFFF20 (-224) Loc: +0x3828 | offset to vtable
- +0x374C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3780 | offset to field `name` (string)
- +0x3750 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x377C | offset to field `fields` (vector)
- +0x3754 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x3758 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3778 | offset to field `documentation` (vector)
- +0x375C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3760 | offset to field `declaration_file` (string)
+ +0x3B00 | 20 FF FF FF | SOffset32 | 0xFFFFFF20 (-224) Loc: +0x3BE0 | offset to vtable
+ +0x3B04 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3B38 | offset to field `name` (string)
+ +0x3B08 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3B34 | offset to field `fields` (vector)
+ +0x3B0C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x3B10 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3B30 | offset to field `documentation` (vector)
+ +0x3B14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3B18 | offset to field `declaration_file` (string)
string (reflection.Object.declaration_file):
- +0x3760 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
- +0x3764 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal
- +0x376C | 72 5F 74 65 73 74 2E 66 | | r_test.f
- +0x3774 | 62 73 | | bs
- +0x3776 | 00 | char | 0x00 (0) | string terminator
+ +0x3B18 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string
+ +0x3B1C | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal
+ +0x3B24 | 72 5F 74 65 73 74 2E 66 | | r_test.f
+ +0x3B2C | 62 73 | | bs
+ +0x3B2E | 00 | char | 0x00 (0) | string terminator
vector (reflection.Object.documentation):
- +0x3778 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3B30 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x377C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3B34 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
string (reflection.Object.name):
- +0x3780 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string
- +0x3784 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal
- +0x378C | 6E 50 61 72 65 6E 74 4E | | nParentN
- +0x3794 | 61 6D 65 73 70 61 63 65 | | amespace
- +0x379C | 00 | char | 0x00 (0) | string terminator
+ +0x3B38 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string
+ +0x3B3C | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal
+ +0x3B44 | 6E 50 61 72 65 6E 74 4E | | nParentN
+ +0x3B4C | 61 6D 65 73 70 61 63 65 | | amespace
+ +0x3B54 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x379D | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3B55 | 00 00 00 | uint8_t[3] | ... | padding
table (reflection.Object):
- +0x37A0 | 78 FF FF FF | SOffset32 | 0xFFFFFF78 (-136) Loc: +0x3828 | offset to vtable
- +0x37A4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x37EC | offset to field `name` (string)
- +0x37A8 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x37E4 | offset to field `fields` (vector)
- +0x37AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x37B0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x37E0 | offset to field `documentation` (vector)
- +0x37B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x37B8 | offset to field `declaration_file` (string)
+ +0x3B58 | 78 FF FF FF | SOffset32 | 0xFFFFFF78 (-136) Loc: +0x3BE0 | offset to vtable
+ +0x3B5C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3BA4 | offset to field `name` (string)
+ +0x3B60 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3B9C | offset to field `fields` (vector)
+ +0x3B64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x3B68 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3B98 | offset to field `documentation` (vector)
+ +0x3B6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3B70 | offset to field `declaration_file` (string)
string (reflection.Object.declaration_file):
- +0x37B8 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string
- +0x37BC | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal
- +0x37C4 | 65 5F 74 65 73 74 2F 69 | | e_test/i
- +0x37CC | 6E 63 6C 75 64 65 5F 74 | | nclude_t
- +0x37D4 | 65 73 74 31 2E 66 62 73 | | est1.fbs
- +0x37DC | 00 | char | 0x00 (0) | string terminator
+ +0x3B70 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string
+ +0x3B74 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal
+ +0x3B7C | 65 5F 74 65 73 74 2F 69 | | e_test/i
+ +0x3B84 | 6E 63 6C 75 64 65 5F 74 | | nclude_t
+ +0x3B8C | 65 73 74 31 2E 66 62 73 | | est1.fbs
+ +0x3B94 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x37DD | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3B95 | 00 00 00 | uint8_t[3] | ... | padding
vector (reflection.Object.documentation):
- +0x37E0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3B98 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x37E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x37E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x37F8 | offset to table[0]
+ +0x3B9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3BA0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3BB0 | offset to table[0]
string (reflection.Object.name):
- +0x37EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
- +0x37F0 | 54 61 62 6C 65 41 | char[6] | TableA | string literal
- +0x37F6 | 00 | char | 0x00 (0) | string terminator
+ +0x3BA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string
+ +0x3BA8 | 54 61 62 6C 65 41 | char[6] | TableA | string literal
+ +0x3BAE | 00 | char | 0x00 (0) | string terminator
table (reflection.Field):
- +0x37F8 | 74 FF FF FF | SOffset32 | 0xFFFFFF74 (-140) Loc: +0x3884 | offset to vtable
- +0x37FC | 00 | uint8_t[1] | . | padding
- +0x37FD | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x37FE | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x3800 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3820 | offset to field `name` (string)
- +0x3804 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3810 | offset to field `type` (table)
- +0x3808 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x380C | offset to field `documentation` (vector)
+ +0x3BB0 | 74 FF FF FF | SOffset32 | 0xFFFFFF74 (-140) Loc: +0x3C3C | offset to vtable
+ +0x3BB4 | 00 | uint8_t[1] | . | padding
+ +0x3BB5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x3BB6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x3BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3BD8 | offset to field `name` (string)
+ +0x3BBC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3BC8 | offset to field `type` (table)
+ +0x3BC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3BC4 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x380C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3BC4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
table (reflection.Type):
- +0x3810 | 58 FF FF FF | SOffset32 | 0xFFFFFF58 (-168) Loc: +0x38B8 | offset to vtable
- +0x3814 | 00 00 00 | uint8_t[3] | ... | padding
- +0x3817 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x3818 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int)
- +0x381C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x3BC8 | 58 FF FF FF | SOffset32 | 0xFFFFFF58 (-168) Loc: +0x3C70 | offset to vtable
+ +0x3BCC | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3BCF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x3BD0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int)
+ +0x3BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x3820 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x3824 | 62 | char[1] | b | string literal
- +0x3825 | 00 | char | 0x00 (0) | string terminator
+ +0x3BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3BDC | 62 | char[1] | b | string literal
+ +0x3BDD | 00 | char | 0x00 (0) | string terminator
padding:
- +0x3826 | 00 00 | uint8_t[2] | .. | padding
+ +0x3BDE | 00 00 | uint8_t[2] | .. | padding
vtable (reflection.Object):
- +0x3828 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
- +0x382A | 18 00 | uint16_t | 0x0018 (24) | size of referring table
- +0x382C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0)
- +0x382E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1)
- +0x3830 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) <defaults to 0> (Bool)
- +0x3832 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3)
- +0x3834 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) <defaults to 0> (Int)
- +0x3836 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) <null> (Vector)
- +0x3838 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6)
- +0x383A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7)
+ +0x3BE0 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
+ +0x3BE2 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+ +0x3BE4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0)
+ +0x3BE6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1)
+ +0x3BE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) <defaults to 0> (Bool)
+ +0x3BEA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3)
+ +0x3BEC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) <defaults to 0> (Int)
+ +0x3BEE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) <null> (Vector)
+ +0x3BF0 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6)
+ +0x3BF2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7)
table (reflection.Object):
- +0x383C | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3828 | offset to vtable
- +0x3840 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3860 | offset to field `name` (string)
- +0x3844 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3858 | offset to field `fields` (vector)
- +0x3848 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
- +0x384C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3854 | offset to field `documentation` (vector)
- +0x3850 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3914 | offset to field `declaration_file` (string)
+ +0x3BF4 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3BE0 | offset to vtable
+ +0x3BF8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3C18 | offset to field `name` (string)
+ +0x3BFC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3C10 | offset to field `fields` (vector)
+ +0x3C00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int)
+ +0x3C04 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3C0C | offset to field `documentation` (vector)
+ +0x3C08 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3CCC | offset to field `declaration_file` (string)
vector (reflection.Object.documentation):
- +0x3854 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3C0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x3858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x385C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x38A0 | offset to table[0]
+ +0x3C10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3C14 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3C58 | offset to table[0]
string (reflection.Object.name):
- +0x3860 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
- +0x3864 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal
- +0x386C | 74 68 65 72 4E 61 6D 65 | | therName
- +0x3874 | 53 70 61 63 65 2E 54 61 | | Space.Ta
- +0x387C | 62 6C 65 42 | | bleB
- +0x3880 | 00 | char | 0x00 (0) | string terminator
+ +0x3C18 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
+ +0x3C1C | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal
+ +0x3C24 | 74 68 65 72 4E 61 6D 65 | | therName
+ +0x3C2C | 53 70 61 63 65 2E 54 61 | | Space.Ta
+ +0x3C34 | 62 6C 65 42 | | bleB
+ +0x3C38 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x3881 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3C39 | 00 00 00 | uint8_t[3] | ... | padding
vtable (reflection.Field):
- +0x3884 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
- +0x3886 | 14 00 | uint16_t | 0x0014 (20) | size of referring table
- +0x3888 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x388A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
- +0x388C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x388E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
- +0x3890 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x3892 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x3894 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x3896 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x3898 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x389A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x389C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
- +0x389E | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11)
+ +0x3C3C | 1C 00 | uint16_t | 0x001C (28) | size of this vtable
+ +0x3C3E | 14 00 | uint16_t | 0x0014 (20) | size of referring table
+ +0x3C40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x3C42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1)
+ +0x3C44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x3C46 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3)
+ +0x3C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3C4E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3C50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3C52 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x3C54 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10)
+ +0x3C56 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11)
table (reflection.Field):
- +0x38A0 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3884 | offset to vtable
- +0x38A4 | 00 | uint8_t[1] | . | padding
- +0x38A5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
- +0x38A6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
- +0x38A8 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x38D8 | offset to field `name` (string)
- +0x38AC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x38C8 | offset to field `type` (table)
- +0x38B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38B4 | offset to field `documentation` (vector)
+ +0x3C58 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3C3C | offset to vtable
+ +0x3C5C | 00 | uint8_t[1] | . | padding
+ +0x3C5D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool)
+ +0x3C5E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort)
+ +0x3C60 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3C90 | offset to field `name` (string)
+ +0x3C64 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3C80 | offset to field `type` (table)
+ +0x3C68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3C6C | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x38B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3C6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vtable (reflection.Type):
- +0x38B8 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
- +0x38BA | 10 00 | uint16_t | 0x0010 (16) | size of referring table
- +0x38BC | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
- +0x38BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
- +0x38C0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2)
- +0x38C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
- +0x38C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
- +0x38C6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5)
+ +0x3C70 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
+ +0x3C72 | 10 00 | uint16_t | 0x0010 (16) | size of referring table
+ +0x3C74 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
+ +0x3C76 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
+ +0x3C78 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2)
+ +0x3C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
+ +0x3C7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
+ +0x3C7E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5)
table (reflection.Type):
- +0x38C8 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x38B8 | offset to vtable
- +0x38CC | 00 00 00 | uint8_t[3] | ... | padding
- +0x38CF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
- +0x38D0 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int)
- +0x38D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x3C80 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3C70 | offset to vtable
+ +0x3C84 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3C87 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte)
+ +0x3C88 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int)
+ +0x3C8C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x38D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x38DC | 61 | char[1] | a | string literal
- +0x38DD | 00 | char | 0x00 (0) | string terminator
+ +0x3C90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3C94 | 61 | char[1] | a | string literal
+ +0x3C95 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x38DE | 00 00 | uint8_t[2] | .. | padding
+ +0x3C96 | 00 00 | uint8_t[2] | .. | padding
vtable (reflection.Object):
- +0x38E0 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
- +0x38E2 | 20 00 | uint16_t | 0x0020 (32) | size of referring table
- +0x38E4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
- +0x38E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1)
- +0x38E8 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2)
- +0x38EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3)
- +0x38EC | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4)
- +0x38EE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) <null> (Vector)
- +0x38F0 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 6)
- +0x38F2 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7)
+ +0x3C98 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable
+ +0x3C9A | 20 00 | uint16_t | 0x0020 (32) | size of referring table
+ +0x3C9C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0)
+ +0x3C9E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1)
+ +0x3CA0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2)
+ +0x3CA2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3)
+ +0x3CA4 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4)
+ +0x3CA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) <null> (Vector)
+ +0x3CA8 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 6)
+ +0x3CAA | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7)
table (reflection.Object):
- +0x38F4 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x38E0 | offset to vtable
- +0x38F8 | 00 00 00 | uint8_t[3] | ... | padding
- +0x38FB | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
- +0x38FC | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x394C | offset to field `name` (string)
- +0x3900 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3944 | offset to field `fields` (vector)
- +0x3904 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
- +0x3908 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int)
- +0x390C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3940 | offset to field `documentation` (vector)
- +0x3910 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3914 | offset to field `declaration_file` (string)
+ +0x3CAC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3C98 | offset to vtable
+ +0x3CB0 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3CB3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool)
+ +0x3CB4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x3D04 | offset to field `name` (string)
+ +0x3CB8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3CFC | offset to field `fields` (vector)
+ +0x3CBC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int)
+ +0x3CC0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int)
+ +0x3CC4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3CF8 | offset to field `documentation` (vector)
+ +0x3CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3CCC | offset to field `declaration_file` (string)
string (reflection.Object.declaration_file):
- +0x3914 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string
- +0x3918 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal
- +0x3920 | 65 5F 74 65 73 74 2F 73 | | e_test/s
- +0x3928 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu
- +0x3930 | 64 65 5F 74 65 73 74 32 | | de_test2
- +0x3938 | 2E 66 62 73 | | .fbs
- +0x393C | 00 | char | 0x00 (0) | string terminator
+ +0x3CCC | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string
+ +0x3CD0 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal
+ +0x3CD8 | 65 5F 74 65 73 74 2F 73 | | e_test/s
+ +0x3CE0 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu
+ +0x3CE8 | 64 65 5F 74 65 73 74 32 | | de_test2
+ +0x3CF0 | 2E 66 62 73 | | .fbs
+ +0x3CF4 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x393D | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3CF5 | 00 00 00 | uint8_t[3] | ... | padding
vector (reflection.Object.documentation):
- +0x3940 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3CF8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vector (reflection.Object.fields):
- +0x3944 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
- +0x3948 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3988 | offset to table[0]
+ +0x3CFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items)
+ +0x3D00 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3D40 | offset to table[0]
string (reflection.Object.name):
- +0x394C | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
- +0x3950 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal
- +0x3958 | 74 68 65 72 4E 61 6D 65 | | therName
- +0x3960 | 53 70 61 63 65 2E 55 6E | | Space.Un
- +0x3968 | 75 73 65 64 | | used
- +0x396C | 00 | char | 0x00 (0) | string terminator
+ +0x3D04 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string
+ +0x3D08 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal
+ +0x3D10 | 74 68 65 72 4E 61 6D 65 | | therName
+ +0x3D18 | 53 70 61 63 65 2E 55 6E | | Space.Un
+ +0x3D20 | 75 73 65 64 | | used
+ +0x3D24 | 00 | char | 0x00 (0) | string terminator
vtable (reflection.Field):
- +0x396E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
- +0x3970 | 10 00 | uint16_t | 0x0010 (16) | size of referring table
- +0x3972 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0)
- +0x3974 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `type` (id: 1)
- +0x3976 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
- +0x3978 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) <defaults to 0> (UShort)
- +0x397A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
- +0x397C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
- +0x397E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
- +0x3980 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
- +0x3982 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
- +0x3984 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
- +0x3986 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 10)
+ +0x3D26 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable
+ +0x3D28 | 10 00 | uint16_t | 0x0010 (16) | size of referring table
+ +0x3D2A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0)
+ +0x3D2C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `type` (id: 1)
+ +0x3D2E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) <defaults to 0> (UShort)
+ +0x3D30 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) <defaults to 0> (UShort)
+ +0x3D32 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) <defaults to 0> (Long)
+ +0x3D34 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) <defaults to 0.000000> (Double)
+ +0x3D36 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) <defaults to 0> (Bool)
+ +0x3D38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) <defaults to 0> (Bool)
+ +0x3D3A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) <defaults to 0> (Bool)
+ +0x3D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) <null> (Vector)
+ +0x3D3E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 10)
table (reflection.Field):
- +0x3988 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x396E | offset to vtable
- +0x398C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x39B8 | offset to field `name` (string)
- +0x3990 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x39AC | offset to field `type` (table)
- +0x3994 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3998 | offset to field `documentation` (vector)
+ +0x3D40 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3D26 | offset to vtable
+ +0x3D44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3D70 | offset to field `name` (string)
+ +0x3D48 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3D64 | offset to field `type` (table)
+ +0x3D4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3D50 | offset to field `documentation` (vector)
vector (reflection.Field.documentation):
- +0x3998 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
+ +0x3D50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items)
vtable (reflection.Type):
- +0x399C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
- +0x399E | 0C 00 | uint16_t | 0x000C (12) | size of referring table
- +0x39A0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
- +0x39A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
- +0x39A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) <defaults to -1> (Int)
- +0x39A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
- +0x39A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
- +0x39AA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5)
+ +0x3D54 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable
+ +0x3D56 | 0C 00 | uint16_t | 0x000C (12) | size of referring table
+ +0x3D58 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0)
+ +0x3D5A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) <defaults to 0> (Byte)
+ +0x3D5C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) <defaults to -1> (Int)
+ +0x3D5E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) <defaults to 0> (UShort)
+ +0x3D60 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) <defaults to 4> (UInt)
+ +0x3D62 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5)
table (reflection.Type):
- +0x39AC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x399C | offset to vtable
- +0x39B0 | 00 00 00 | uint8_t[3] | ... | padding
- +0x39B3 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
- +0x39B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
+ +0x3D64 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3D54 | offset to vtable
+ +0x3D68 | 00 00 00 | uint8_t[3] | ... | padding
+ +0x3D6B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte)
+ +0x3D6C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt)
string (reflection.Field.name):
- +0x39B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
- +0x39BC | 61 | char[1] | a | string literal
- +0x39BD | 00 | char | 0x00 (0) | string terminator
+ +0x3D70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string
+ +0x3D74 | 61 | char[1] | a | string literal
+ +0x3D75 | 00 | char | 0x00 (0) | string terminator
padding:
- +0x39BE | 00 00 | uint8_t[2] | .. | padding
+ +0x3D76 | 00 00 | uint8_t[2] | .. | padding
diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs
index d389aab..04a6d16 100644
--- a/tests/monster_test.bfbs
+++ b/tests/monster_test.bfbs
Binary files differ
diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp
index 4fc9e14..f081dd9 100644
--- a/tests/monster_test.cpp
+++ b/tests/monster_test.cpp
@@ -1,5 +1,6 @@
#include "monster_test.h"
+#include <limits>
#include <vector>
#include "flatbuffers/flatbuffer_builder.h"
@@ -439,6 +440,16 @@
TEST_EQ(first->hp(), 0);
first->mutate_hp(1000);
+ // Test for each loop over mutable entries
+ for (auto item: *tables)
+ {
+ TEST_EQ(item->hp(), 1000);
+ item->mutate_hp(0);
+ TEST_EQ(item->hp(), 0);
+ item->mutate_hp(1000);
+ break; // one iteration is enough, just testing compilation
+ }
+
// Mutate via LookupByKey
TEST_NOTNULL(tables->MutableLookupByKey("Barney"));
TEST_EQ(static_cast<Monster *>(nullptr),
@@ -842,4 +853,4 @@
}
} // namespace tests
-} // namespace flatbuffers
\ No newline at end of file
+} // namespace flatbuffers
diff --git a/tests/monster_test.fbs b/tests/monster_test.fbs
index 14d34cb..b40ecf5 100644
--- a/tests/monster_test.fbs
+++ b/tests/monster_test.fbs
@@ -141,6 +141,15 @@
// enum value.
long_enum_non_enum_default:LongEnum (id: 52);
long_enum_normal_default:LongEnum = LongOne (id: 53);
+ // Test that default values nan and +/-inf work.
+ nan_default:float = nan (id: 54);
+ inf_default:float = inf (id: 55);
+ positive_inf_default:float = +inf (id: 56);
+ infinity_default:float = infinity (id: 57);
+ positive_infinity_default:float = +infinity (id: 58);
+ negative_inf_default:float = -inf (id: 59);
+ negative_infinity_default:float = -infinity (id: 60);
+ double_inf_default:double = inf (id: 61);
}
table TypeAliases {
diff --git a/tests/monster_test.schema.json b/tests/monster_test.schema.json
index 5e98ef4..edcfbd9 100644
--- a/tests/monster_test.schema.json
+++ b/tests/monster_test.schema.json
@@ -340,6 +340,30 @@
},
"long_enum_normal_default" : {
"$ref" : "#/definitions/MyGame_Example_LongEnum"
+ },
+ "nan_default" : {
+ "type" : "number"
+ },
+ "inf_default" : {
+ "type" : "number"
+ },
+ "positive_inf_default" : {
+ "type" : "number"
+ },
+ "infinity_default" : {
+ "type" : "number"
+ },
+ "positive_infinity_default" : {
+ "type" : "number"
+ },
+ "negative_inf_default" : {
+ "type" : "number"
+ },
+ "negative_infinity_default" : {
+ "type" : "number"
+ },
+ "double_inf_default" : {
+ "type" : "number"
}
},
"required" : ["name"],
diff --git a/tests/monster_test/my_game/example/ability_generated.rs b/tests/monster_test/my_game/example/ability_generated.rs
index d1f177c..042df75 100644
--- a/tests/monster_test/my_game/example/ability_generated.rs
+++ b/tests/monster_test/my_game/example/ability_generated.rs
@@ -28,39 +28,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Ability {}
-impl flatbuffers::SafeSliceAccess for Ability {}
impl<'a> flatbuffers::Follow<'a> for Ability {
type Inner = &'a Ability;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Ability>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Ability {
type Inner = &'a Ability;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Ability>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Ability {
type Output = Ability;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Ability as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Ability {
- type Output = Ability;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Ability as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Ability as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -92,24 +78,30 @@
}
pub fn id(&self) -> u32 {
- let mut mem = core::mem::MaybeUninit::<u32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<u32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_id(&mut self, x: u32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const u32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
}
}
@@ -125,24 +117,30 @@
key.cmp(&val)
}
pub fn distance(&self) -> u32 {
- let mut mem = core::mem::MaybeUninit::<u32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<u32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[4..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_distance(&mut self, x: u32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const u32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[4..].as_mut_ptr(),
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/monster_test/my_game/example/any_ambiguous_aliases_generated.rs b/tests/monster_test/my_game/example/any_ambiguous_aliases_generated.rs
index ee8cba7..8ff2091 100644
--- a/tests/monster_test/my_game/example/any_ambiguous_aliases_generated.rs
+++ b/tests/monster_test/my_game/example/any_ambiguous_aliases_generated.rs
@@ -63,10 +63,8 @@
impl<'a> flatbuffers::Follow<'a> for AnyAmbiguousAliases {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -74,21 +72,21 @@
impl flatbuffers::Push for AnyAmbiguousAliases {
type Output = AnyAmbiguousAliases;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for AnyAmbiguousAliases {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test/my_game/example/any_generated.rs b/tests/monster_test/my_game/example/any_generated.rs
index adddc10..d33337a 100644
--- a/tests/monster_test/my_game/example/any_generated.rs
+++ b/tests/monster_test/my_game/example/any_generated.rs
@@ -63,10 +63,8 @@
impl<'a> flatbuffers::Follow<'a> for Any {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -74,21 +72,21 @@
impl flatbuffers::Push for Any {
type Output = Any;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for Any {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test/my_game/example/any_unique_aliases_generated.rs b/tests/monster_test/my_game/example/any_unique_aliases_generated.rs
index 5142d0e..726fa8e 100644
--- a/tests/monster_test/my_game/example/any_unique_aliases_generated.rs
+++ b/tests/monster_test/my_game/example/any_unique_aliases_generated.rs
@@ -63,10 +63,8 @@
impl<'a> flatbuffers::Follow<'a> for AnyUniqueAliases {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -74,21 +72,21 @@
impl flatbuffers::Push for AnyUniqueAliases {
type Output = AnyUniqueAliases;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for AnyUniqueAliases {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test/my_game/example/color_generated.rs b/tests/monster_test/my_game/example/color_generated.rs
index 1b9287f..9cd348a 100644
--- a/tests/monster_test/my_game/example/color_generated.rs
+++ b/tests/monster_test/my_game/example/color_generated.rs
@@ -29,32 +29,38 @@
impl<'a> flatbuffers::Follow<'a> for Color {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
- unsafe { Self::from_bits_unchecked(b) }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
+ Self::from_bits_unchecked(b)
}
}
impl flatbuffers::Push for Color {
type Output = Color;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.bits()); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.bits());
}
}
impl flatbuffers::EndianScalar for Color {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.bits());
- unsafe { Self::from_bits_unchecked(b) }
+ fn to_little_endian(self) -> u8 {
+ self.bits().to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.bits());
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
unsafe { Self::from_bits_unchecked(b) }
}
}
diff --git a/tests/monster_test/my_game/example/long_enum_generated.rs b/tests/monster_test/my_game/example/long_enum_generated.rs
index 6a24d74..d762526 100644
--- a/tests/monster_test/my_game/example/long_enum_generated.rs
+++ b/tests/monster_test/my_game/example/long_enum_generated.rs
@@ -25,32 +25,38 @@
impl<'a> flatbuffers::Follow<'a> for LongEnum {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u64>(buf, loc)
- };
- unsafe { Self::from_bits_unchecked(b) }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u64>(buf, loc);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
+ Self::from_bits_unchecked(b)
}
}
impl flatbuffers::Push for LongEnum {
type Output = LongEnum;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u64>(dst, self.bits()); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u64>(dst, self.bits());
}
}
impl flatbuffers::EndianScalar for LongEnum {
+ type Scalar = u64;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u64::to_le(self.bits());
- unsafe { Self::from_bits_unchecked(b) }
+ fn to_little_endian(self) -> u64 {
+ self.bits().to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u64::from_le(self.bits());
+ fn from_little_endian(v: u64) -> Self {
+ let b = u64::from_le(v);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
unsafe { Self::from_bits_unchecked(b) }
}
}
diff --git a/tests/monster_test/my_game/example/monster_generated.rs b/tests/monster_test/my_game/example/monster_generated.rs
index dd325b2..67dfcb3 100644
--- a/tests/monster_test/my_game/example/monster_generated.rs
+++ b/tests/monster_test/my_game/example/monster_generated.rs
@@ -20,8 +20,8 @@
impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
type Inner = Monster<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -79,13 +79,21 @@
pub const VT_NATIVE_INLINE: flatbuffers::VOffsetT = 106;
pub const VT_LONG_ENUM_NON_ENUM_DEFAULT: flatbuffers::VOffsetT = 108;
pub const VT_LONG_ENUM_NORMAL_DEFAULT: flatbuffers::VOffsetT = 110;
+ pub const VT_NAN_DEFAULT: flatbuffers::VOffsetT = 112;
+ pub const VT_INF_DEFAULT: flatbuffers::VOffsetT = 114;
+ pub const VT_POSITIVE_INF_DEFAULT: flatbuffers::VOffsetT = 116;
+ pub const VT_INFINITY_DEFAULT: flatbuffers::VOffsetT = 118;
+ pub const VT_POSITIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 120;
+ pub const VT_NEGATIVE_INF_DEFAULT: flatbuffers::VOffsetT = 122;
+ pub const VT_NEGATIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 124;
+ pub const VT_DOUBLE_INF_DEFAULT: flatbuffers::VOffsetT = 126;
pub const fn get_fully_qualified_name() -> &'static str {
"MyGame.Example.Monster"
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Monster { _tab: table }
}
#[allow(unused_mut)]
@@ -94,6 +102,7 @@
args: &'args MonsterArgs<'args>
) -> flatbuffers::WIPOffset<Monster<'bldr>> {
let mut builder = MonsterBuilder::new(_fbb);
+ builder.add_double_inf_default(args.double_inf_default);
builder.add_long_enum_normal_default(args.long_enum_normal_default);
builder.add_long_enum_non_enum_default(args.long_enum_non_enum_default);
builder.add_non_owning_reference(args.non_owning_reference);
@@ -103,6 +112,13 @@
builder.add_testhashs64_fnv1a(args.testhashs64_fnv1a);
builder.add_testhashu64_fnv1(args.testhashu64_fnv1);
builder.add_testhashs64_fnv1(args.testhashs64_fnv1);
+ builder.add_negative_infinity_default(args.negative_infinity_default);
+ builder.add_negative_inf_default(args.negative_inf_default);
+ builder.add_positive_infinity_default(args.positive_infinity_default);
+ builder.add_infinity_default(args.infinity_default);
+ builder.add_positive_inf_default(args.positive_inf_default);
+ builder.add_inf_default(args.inf_default);
+ builder.add_nan_default(args.nan_default);
if let Some(x) = args.native_inline { builder.add_native_inline(x); }
if let Some(x) = args.scalar_key_sorted_tables { builder.add_scalar_key_sorted_tables(x); }
if let Some(x) = args.testrequirednestedflatbuffer { builder.add_testrequirednestedflatbuffer(x); }
@@ -161,7 +177,7 @@
x.to_string()
};
let inventory = self.inventory().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let color = self.color();
let test = match self.test_type() {
@@ -196,7 +212,7 @@
Box::new(x.unpack())
});
let testnestedflatbuffer = self.testnestedflatbuffer().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let testempty = self.testempty().map(|x| {
Box::new(x.unpack())
@@ -211,7 +227,7 @@
let testhashs64_fnv1a = self.testhashs64_fnv1a();
let testhashu64_fnv1a = self.testhashu64_fnv1a();
let testarrayofbools = self.testarrayofbools().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let testf = self.testf();
let testf2 = self.testf2();
@@ -223,7 +239,7 @@
x.iter().map(|t| t.unpack()).collect()
});
let flex = self.flex().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let test5 = self.test5().map(|x| {
x.iter().map(|t| t.unpack()).collect()
@@ -298,7 +314,7 @@
});
let signed_enum = self.signed_enum();
let testrequirednestedflatbuffer = self.testrequirednestedflatbuffer().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let scalar_key_sorted_tables = self.scalar_key_sorted_tables().map(|x| {
x.iter().map(|t| t.unpack()).collect()
@@ -308,6 +324,14 @@
});
let long_enum_non_enum_default = self.long_enum_non_enum_default();
let long_enum_normal_default = self.long_enum_normal_default();
+ let nan_default = self.nan_default();
+ let inf_default = self.inf_default();
+ let positive_inf_default = self.positive_inf_default();
+ let infinity_default = self.infinity_default();
+ let positive_infinity_default = self.positive_infinity_default();
+ let negative_inf_default = self.negative_inf_default();
+ let negative_infinity_default = self.negative_infinity_default();
+ let double_inf_default = self.double_inf_default();
MonsterT {
pos,
mana,
@@ -359,24 +383,44 @@
native_inline,
long_enum_non_enum_default,
long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default,
}
}
#[inline]
pub fn pos(&self) -> Option<&'a Vec3> {
- self._tab.get::<Vec3>(Monster::VT_POS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Vec3>(Monster::VT_POS, None)}
}
#[inline]
pub fn mana(&self) -> i16 {
- self._tab.get::<i16>(Monster::VT_MANA, Some(150)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(Monster::VT_MANA, Some(150)).unwrap()}
}
#[inline]
pub fn hp(&self) -> i16 {
- self._tab.get::<i16>(Monster::VT_HP, Some(100)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(Monster::VT_HP, Some(100)).unwrap()}
}
#[inline]
pub fn name(&self) -> &'a str {
- self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Monster::VT_NAME, None).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Monster::VT_NAME, None).unwrap()}
}
#[inline]
pub fn key_compare_less_than(&self, o: &Monster) -> bool {
@@ -389,220 +433,434 @@
key.cmp(val)
}
#[inline]
- pub fn inventory(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_INVENTORY, None).map(|v| v.safe_slice())
+ pub fn inventory(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_INVENTORY, None)}
}
#[inline]
pub fn color(&self) -> Color {
- self._tab.get::<Color>(Monster::VT_COLOR, Some(Color::Blue)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Color>(Monster::VT_COLOR, Some(Color::Blue)).unwrap()}
}
#[inline]
pub fn test_type(&self) -> Any {
- self._tab.get::<Any>(Monster::VT_TEST_TYPE, Some(Any::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Any>(Monster::VT_TEST_TYPE, Some(Any::NONE)).unwrap()}
}
#[inline]
pub fn test(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_TEST, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_TEST, None)}
}
#[inline]
- pub fn test4(&self) -> Option<&'a [Test]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST4, None).map(|v| v.safe_slice())
+ pub fn test4(&self) -> Option<flatbuffers::Vector<'a, Test>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST4, None)}
}
#[inline]
pub fn testarrayofstring(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING, None)}
}
/// an example documentation comment: this will end up in the generated code
/// multiline too
#[inline]
pub fn testarrayoftables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster>>>>(Monster::VT_TESTARRAYOFTABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster>>>>(Monster::VT_TESTARRAYOFTABLES, None)}
}
#[inline]
pub fn enemy(&self) -> Option<Monster<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<Monster>>(Monster::VT_ENEMY, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<Monster>>(Monster::VT_ENEMY, None)}
}
#[inline]
- pub fn testnestedflatbuffer(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
+ pub fn testnestedflatbuffer(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTNESTEDFLATBUFFER, None)}
}
pub fn testnestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
self.testnestedflatbuffer().map(|data| {
use flatbuffers::Follow;
- <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid flatbuffer in this slot
+ unsafe { <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data.bytes(), 0) }
})
}
#[inline]
pub fn testempty(&self) -> Option<Stat<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<Stat>>(Monster::VT_TESTEMPTY, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<Stat>>(Monster::VT_TESTEMPTY, None)}
}
#[inline]
pub fn testbool(&self) -> bool {
- self._tab.get::<bool>(Monster::VT_TESTBOOL, Some(false)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<bool>(Monster::VT_TESTBOOL, Some(false)).unwrap()}
}
#[inline]
pub fn testhashs32_fnv1(&self) -> i32 {
- self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu32_fnv1(&self) -> u32 {
- self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashs64_fnv1(&self) -> i64 {
- self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu64_fnv1(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashs32_fnv1a(&self) -> i32 {
- self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1A, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu32_fnv1a(&self) -> u32 {
- self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1A, Some(0)).unwrap()}
}
#[inline]
pub fn testhashs64_fnv1a(&self) -> i64 {
- self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1A, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu64_fnv1a(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1A, Some(0)).unwrap()}
}
#[inline]
- pub fn testarrayofbools(&self) -> Option<&'a [bool]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(Monster::VT_TESTARRAYOFBOOLS, None).map(|v| v.safe_slice())
+ pub fn testarrayofbools(&self) -> Option<flatbuffers::Vector<'a, bool>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(Monster::VT_TESTARRAYOFBOOLS, None)}
}
#[inline]
pub fn testf(&self) -> f32 {
- self._tab.get::<f32>(Monster::VT_TESTF, Some(3.14159)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_TESTF, Some(3.14159)).unwrap()}
}
#[inline]
pub fn testf2(&self) -> f32 {
- self._tab.get::<f32>(Monster::VT_TESTF2, Some(3.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_TESTF2, Some(3.0)).unwrap()}
}
#[inline]
pub fn testf3(&self) -> f32 {
- self._tab.get::<f32>(Monster::VT_TESTF3, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_TESTF3, Some(0.0)).unwrap()}
}
#[inline]
pub fn testarrayofstring2(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING2, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING2, None)}
}
#[inline]
- pub fn testarrayofsortedstruct(&self) -> Option<&'a [Ability]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Ability>>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, None).map(|v| v.safe_slice())
+ pub fn testarrayofsortedstruct(&self) -> Option<flatbuffers::Vector<'a, Ability>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Ability>>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, None)}
}
#[inline]
- pub fn flex(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_FLEX, None).map(|v| v.safe_slice())
+ pub fn flex(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_FLEX, None)}
}
#[inline]
- pub fn test5(&self) -> Option<&'a [Test]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST5, None).map(|v| v.safe_slice())
+ pub fn test5(&self) -> Option<flatbuffers::Vector<'a, Test>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST5, None)}
}
#[inline]
pub fn vector_of_longs(&self) -> Option<flatbuffers::Vector<'a, i64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i64>>>(Monster::VT_VECTOR_OF_LONGS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i64>>>(Monster::VT_VECTOR_OF_LONGS, None)}
}
#[inline]
pub fn vector_of_doubles(&self) -> Option<flatbuffers::Vector<'a, f64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(Monster::VT_VECTOR_OF_DOUBLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(Monster::VT_VECTOR_OF_DOUBLES, None)}
}
#[inline]
pub fn parent_namespace_test(&self) -> Option<super::InParentNamespace<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, None)}
}
#[inline]
pub fn vector_of_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_REFERRABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_REFERRABLES, None)}
}
#[inline]
pub fn single_weak_reference(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, Some(0)).unwrap()}
}
#[inline]
pub fn vector_of_weak_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, None)}
}
#[inline]
pub fn vector_of_strong_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, None)}
}
#[inline]
pub fn co_owning_reference(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_CO_OWNING_REFERENCE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_CO_OWNING_REFERENCE, Some(0)).unwrap()}
}
#[inline]
pub fn vector_of_co_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, None)}
}
#[inline]
pub fn non_owning_reference(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_NON_OWNING_REFERENCE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_NON_OWNING_REFERENCE, Some(0)).unwrap()}
}
#[inline]
pub fn vector_of_non_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, None)}
}
#[inline]
pub fn any_unique_type(&self) -> AnyUniqueAliases {
- self._tab.get::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, Some(AnyUniqueAliases::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, Some(AnyUniqueAliases::NONE)).unwrap()}
}
#[inline]
pub fn any_unique(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_UNIQUE, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_UNIQUE, None)}
}
#[inline]
pub fn any_ambiguous_type(&self) -> AnyAmbiguousAliases {
- self._tab.get::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, Some(AnyAmbiguousAliases::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, Some(AnyAmbiguousAliases::NONE)).unwrap()}
}
#[inline]
pub fn any_ambiguous(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_AMBIGUOUS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_AMBIGUOUS, None)}
}
#[inline]
pub fn vector_of_enums(&self) -> Option<flatbuffers::Vector<'a, Color>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Color>>>(Monster::VT_VECTOR_OF_ENUMS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Color>>>(Monster::VT_VECTOR_OF_ENUMS, None)}
}
#[inline]
pub fn signed_enum(&self) -> Race {
- self._tab.get::<Race>(Monster::VT_SIGNED_ENUM, Some(Race::None)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Race>(Monster::VT_SIGNED_ENUM, Some(Race::None)).unwrap()}
}
#[inline]
- pub fn testrequirednestedflatbuffer(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
+ pub fn testrequirednestedflatbuffer(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, None)}
}
pub fn testrequirednestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
self.testrequirednestedflatbuffer().map(|data| {
use flatbuffers::Follow;
- <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid flatbuffer in this slot
+ unsafe { <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data.bytes(), 0) }
})
}
#[inline]
pub fn scalar_key_sorted_tables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat>>>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat>>>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, None)}
}
#[inline]
pub fn native_inline(&self) -> Option<&'a Test> {
- self._tab.get::<Test>(Monster::VT_NATIVE_INLINE, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Test>(Monster::VT_NATIVE_INLINE, None)}
}
#[inline]
pub fn long_enum_non_enum_default(&self) -> LongEnum {
- self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NON_ENUM_DEFAULT, Some(Default::default())).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NON_ENUM_DEFAULT, Some(Default::default())).unwrap()}
}
#[inline]
pub fn long_enum_normal_default(&self) -> LongEnum {
- self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()}
+ }
+ #[inline]
+ pub fn nan_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_NAN_DEFAULT, Some(f32::NAN)).unwrap()}
+ }
+ #[inline]
+ pub fn inf_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_INF_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn positive_inf_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_POSITIVE_INF_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn infinity_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn positive_infinity_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_POSITIVE_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn negative_inf_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_NEGATIVE_INF_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn negative_infinity_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn double_inf_default(&self) -> f64 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(Monster::VT_DOUBLE_INF_DEFAULT, Some(f64::INFINITY)).unwrap()}
}
#[inline]
#[allow(non_snake_case)]
pub fn test_as_monster(&self) -> Option<Monster<'a>> {
if self.test_type() == Any::Monster {
- self.test().map(Monster::init_from_table)
+ self.test().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -612,7 +870,12 @@
#[allow(non_snake_case)]
pub fn test_as_test_simple_table_with_enum(&self) -> Option<TestSimpleTableWithEnum<'a>> {
if self.test_type() == Any::TestSimpleTableWithEnum {
- self.test().map(TestSimpleTableWithEnum::init_from_table)
+ self.test().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { TestSimpleTableWithEnum::init_from_table(t) }
+ })
} else {
None
}
@@ -622,7 +885,12 @@
#[allow(non_snake_case)]
pub fn test_as_my_game_example_2_monster(&self) -> Option<super::example_2::Monster<'a>> {
if self.test_type() == Any::MyGame_Example2_Monster {
- self.test().map(super::example_2::Monster::init_from_table)
+ self.test().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { super::example_2::Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -632,7 +900,12 @@
#[allow(non_snake_case)]
pub fn any_unique_as_m(&self) -> Option<Monster<'a>> {
if self.any_unique_type() == AnyUniqueAliases::M {
- self.any_unique().map(Monster::init_from_table)
+ self.any_unique().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -642,7 +915,12 @@
#[allow(non_snake_case)]
pub fn any_unique_as_ts(&self) -> Option<TestSimpleTableWithEnum<'a>> {
if self.any_unique_type() == AnyUniqueAliases::TS {
- self.any_unique().map(TestSimpleTableWithEnum::init_from_table)
+ self.any_unique().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { TestSimpleTableWithEnum::init_from_table(t) }
+ })
} else {
None
}
@@ -652,7 +930,12 @@
#[allow(non_snake_case)]
pub fn any_unique_as_m2(&self) -> Option<super::example_2::Monster<'a>> {
if self.any_unique_type() == AnyUniqueAliases::M2 {
- self.any_unique().map(super::example_2::Monster::init_from_table)
+ self.any_unique().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { super::example_2::Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -662,7 +945,12 @@
#[allow(non_snake_case)]
pub fn any_ambiguous_as_m1(&self) -> Option<Monster<'a>> {
if self.any_ambiguous_type() == AnyAmbiguousAliases::M1 {
- self.any_ambiguous().map(Monster::init_from_table)
+ self.any_ambiguous().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -672,7 +960,12 @@
#[allow(non_snake_case)]
pub fn any_ambiguous_as_m2(&self) -> Option<Monster<'a>> {
if self.any_ambiguous_type() == AnyAmbiguousAliases::M2 {
- self.any_ambiguous().map(Monster::init_from_table)
+ self.any_ambiguous().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -682,7 +975,12 @@
#[allow(non_snake_case)]
pub fn any_ambiguous_as_m3(&self) -> Option<Monster<'a>> {
if self.any_ambiguous_type() == AnyAmbiguousAliases::M3 {
- self.any_ambiguous().map(Monster::init_from_table)
+ self.any_ambiguous().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -768,6 +1066,14 @@
.visit_field::<Test>("native_inline", Self::VT_NATIVE_INLINE, false)?
.visit_field::<LongEnum>("long_enum_non_enum_default", Self::VT_LONG_ENUM_NON_ENUM_DEFAULT, false)?
.visit_field::<LongEnum>("long_enum_normal_default", Self::VT_LONG_ENUM_NORMAL_DEFAULT, false)?
+ .visit_field::<f32>("nan_default", Self::VT_NAN_DEFAULT, false)?
+ .visit_field::<f32>("inf_default", Self::VT_INF_DEFAULT, false)?
+ .visit_field::<f32>("positive_inf_default", Self::VT_POSITIVE_INF_DEFAULT, false)?
+ .visit_field::<f32>("infinity_default", Self::VT_INFINITY_DEFAULT, false)?
+ .visit_field::<f32>("positive_infinity_default", Self::VT_POSITIVE_INFINITY_DEFAULT, false)?
+ .visit_field::<f32>("negative_inf_default", Self::VT_NEGATIVE_INF_DEFAULT, false)?
+ .visit_field::<f32>("negative_infinity_default", Self::VT_NEGATIVE_INFINITY_DEFAULT, false)?
+ .visit_field::<f64>("double_inf_default", Self::VT_DOUBLE_INF_DEFAULT, false)?
.finish();
Ok(())
}
@@ -826,6 +1132,14 @@
pub native_inline: Option<&'a Test>,
pub long_enum_non_enum_default: LongEnum,
pub long_enum_normal_default: LongEnum,
+ pub nan_default: f32,
+ pub inf_default: f32,
+ pub positive_inf_default: f32,
+ pub infinity_default: f32,
+ pub positive_infinity_default: f32,
+ pub negative_inf_default: f32,
+ pub negative_infinity_default: f32,
+ pub double_inf_default: f64,
}
impl<'a> Default for MonsterArgs<'a> {
#[inline]
@@ -884,6 +1198,14 @@
native_inline: None,
long_enum_non_enum_default: Default::default(),
long_enum_normal_default: LongEnum::LongOne,
+ nan_default: f32::NAN,
+ inf_default: f32::INFINITY,
+ positive_inf_default: f32::INFINITY,
+ infinity_default: f32::INFINITY,
+ positive_infinity_default: f32::INFINITY,
+ negative_inf_default: f32::NEG_INFINITY,
+ negative_infinity_default: f32::NEG_INFINITY,
+ double_inf_default: f64::INFINITY,
}
}
}
@@ -1106,6 +1428,38 @@
self.fbb_.push_slot::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, long_enum_normal_default, LongEnum::LongOne);
}
#[inline]
+ pub fn add_nan_default(&mut self, nan_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_NAN_DEFAULT, nan_default, f32::NAN);
+ }
+ #[inline]
+ pub fn add_inf_default(&mut self, inf_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_INF_DEFAULT, inf_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_positive_inf_default(&mut self, positive_inf_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_infinity_default(&mut self, infinity_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_INFINITY_DEFAULT, infinity_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_positive_infinity_default(&mut self, positive_infinity_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_negative_inf_default(&mut self, negative_inf_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, f32::NEG_INFINITY);
+ }
+ #[inline]
+ pub fn add_negative_infinity_default(&mut self, negative_infinity_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, f32::NEG_INFINITY);
+ }
+ #[inline]
+ pub fn add_double_inf_default(&mut self, double_inf_default: f64) {
+ self.fbb_.push_slot::<f64>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, f64::INFINITY);
+ }
+ #[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> {
let start = _fbb.start_table();
MonsterBuilder {
@@ -1255,6 +1609,14 @@
ds.field("native_inline", &self.native_inline());
ds.field("long_enum_non_enum_default", &self.long_enum_non_enum_default());
ds.field("long_enum_normal_default", &self.long_enum_normal_default());
+ ds.field("nan_default", &self.nan_default());
+ ds.field("inf_default", &self.inf_default());
+ ds.field("positive_inf_default", &self.positive_inf_default());
+ ds.field("infinity_default", &self.infinity_default());
+ ds.field("positive_infinity_default", &self.positive_infinity_default());
+ ds.field("negative_inf_default", &self.negative_inf_default());
+ ds.field("negative_infinity_default", &self.negative_infinity_default());
+ ds.field("double_inf_default", &self.double_inf_default());
ds.finish()
}
}
@@ -1311,6 +1673,14 @@
pub native_inline: Option<TestT>,
pub long_enum_non_enum_default: LongEnum,
pub long_enum_normal_default: LongEnum,
+ pub nan_default: f32,
+ pub inf_default: f32,
+ pub positive_inf_default: f32,
+ pub infinity_default: f32,
+ pub positive_infinity_default: f32,
+ pub negative_inf_default: f32,
+ pub negative_infinity_default: f32,
+ pub double_inf_default: f64,
}
impl Default for MonsterT {
fn default() -> Self {
@@ -1365,6 +1735,14 @@
native_inline: None,
long_enum_non_enum_default: Default::default(),
long_enum_normal_default: LongEnum::LongOne,
+ nan_default: f32::NAN,
+ inf_default: f32::INFINITY,
+ positive_inf_default: f32::INFINITY,
+ infinity_default: f32::INFINITY,
+ positive_infinity_default: f32::INFINITY,
+ negative_inf_default: f32::NEG_INFINITY,
+ negative_infinity_default: f32::NEG_INFINITY,
+ double_inf_default: f64::INFINITY,
}
}
}
@@ -1391,7 +1769,7 @@
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
});
let testarrayofstring = self.testarrayofstring.as_ref().map(|x|{
- let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
+ let w: Vec<_> = x.iter().map(|s| _fbb.create_string(s)).collect();_fbb.create_vector(&w)
});
let testarrayoftables = self.testarrayoftables.as_ref().map(|x|{
let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
@@ -1421,7 +1799,7 @@
let testf2 = self.testf2;
let testf3 = self.testf3;
let testarrayofstring2 = self.testarrayofstring2.as_ref().map(|x|{
- let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
+ let w: Vec<_> = x.iter().map(|s| _fbb.create_string(s)).collect();_fbb.create_vector(&w)
});
let testarrayofsortedstruct = self.testarrayofsortedstruct.as_ref().map(|x|{
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
@@ -1477,6 +1855,14 @@
let native_inline = native_inline_tmp.as_ref();
let long_enum_non_enum_default = self.long_enum_non_enum_default;
let long_enum_normal_default = self.long_enum_normal_default;
+ let nan_default = self.nan_default;
+ let inf_default = self.inf_default;
+ let positive_inf_default = self.positive_inf_default;
+ let infinity_default = self.infinity_default;
+ let positive_infinity_default = self.positive_infinity_default;
+ let negative_inf_default = self.negative_inf_default;
+ let negative_infinity_default = self.negative_infinity_default;
+ let double_inf_default = self.double_inf_default;
Monster::create(_fbb, &MonsterArgs{
pos,
mana,
@@ -1531,22 +1917,18 @@
native_inline,
long_enum_non_enum_default,
long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default,
})
}
}
#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
- unsafe { flatbuffers::root_unchecked::<Monster<'a>>(buf) }
-}
-
-#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_size_prefixed_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
- unsafe { flatbuffers::size_prefixed_root_unchecked::<Monster<'a>>(buf) }
-}
-
-#[inline]
/// Verifies that a buffer of bytes contains a `Monster`
/// and returns it.
/// Note that verification is still experimental and may not
diff --git a/tests/monster_test/my_game/example/race_generated.rs b/tests/monster_test/my_game/example/race_generated.rs
index 47f3855..dd48b4e 100644
--- a/tests/monster_test/my_game/example/race_generated.rs
+++ b/tests/monster_test/my_game/example/race_generated.rs
@@ -63,10 +63,8 @@
impl<'a> flatbuffers::Follow<'a> for Race {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
Self(b)
}
}
@@ -74,21 +72,21 @@
impl flatbuffers::Push for Race {
type Output = Race;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for Race {
+ type Scalar = i8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i8::from_le(self.0);
+ fn from_little_endian(v: i8) -> Self {
+ let b = i8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test/my_game/example/referrable_generated.rs b/tests/monster_test/my_game/example/referrable_generated.rs
index 81a9d60..5a031ce 100644
--- a/tests/monster_test/my_game/example/referrable_generated.rs
+++ b/tests/monster_test/my_game/example/referrable_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for Referrable<'a> {
type Inner = Referrable<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Referrable { _tab: table }
}
#[allow(unused_mut)]
@@ -54,7 +54,10 @@
#[inline]
pub fn id(&self) -> u64 {
- self._tab.get::<u64>(Referrable::VT_ID, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Referrable::VT_ID, Some(0)).unwrap()}
}
#[inline]
pub fn key_compare_less_than(&self, o: &Referrable) -> bool {
diff --git a/tests/monster_test/my_game/example/stat_generated.rs b/tests/monster_test/my_game/example/stat_generated.rs
index 98bc331..3fd55f9 100644
--- a/tests/monster_test/my_game/example/stat_generated.rs
+++ b/tests/monster_test/my_game/example/stat_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for Stat<'a> {
type Inner = Stat<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -34,7 +34,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Stat { _tab: table }
}
#[allow(unused_mut)]
@@ -64,15 +64,24 @@
#[inline]
pub fn id(&self) -> Option<&'a str> {
- self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Stat::VT_ID, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Stat::VT_ID, None)}
}
#[inline]
pub fn val(&self) -> i64 {
- self._tab.get::<i64>(Stat::VT_VAL, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(Stat::VT_VAL, Some(0)).unwrap()}
}
#[inline]
pub fn count(&self) -> u16 {
- self._tab.get::<u16>(Stat::VT_COUNT, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(Stat::VT_COUNT, Some(0)).unwrap()}
}
#[inline]
pub fn key_compare_less_than(&self, o: &Stat) -> bool {
diff --git a/tests/monster_test/my_game/example/struct_of_structs_generated.rs b/tests/monster_test/my_game/example/struct_of_structs_generated.rs
index bc05c77..77410a6 100644
--- a/tests/monster_test/my_game/example/struct_of_structs_generated.rs
+++ b/tests/monster_test/my_game/example/struct_of_structs_generated.rs
@@ -29,39 +29,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for StructOfStructs {}
-impl flatbuffers::SafeSliceAccess for StructOfStructs {}
impl<'a> flatbuffers::Follow<'a> for StructOfStructs {
type Inner = &'a StructOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a StructOfStructs>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a StructOfStructs {
type Inner = &'a StructOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<StructOfStructs>(buf, loc)
}
}
impl<'b> flatbuffers::Push for StructOfStructs {
type Output = StructOfStructs;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const StructOfStructs as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b StructOfStructs {
- type Output = StructOfStructs;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const StructOfStructs as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const StructOfStructs as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -95,6 +81,9 @@
}
pub fn a(&self) -> &Ability {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[0..].as_ptr() as *const Ability) }
}
@@ -104,6 +93,9 @@
}
pub fn b(&self) -> &Test {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[8..].as_ptr() as *const Test) }
}
@@ -113,6 +105,9 @@
}
pub fn c(&self) -> &Ability {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[12..].as_ptr() as *const Ability) }
}
diff --git a/tests/monster_test/my_game/example/struct_of_structs_of_structs_generated.rs b/tests/monster_test/my_game/example/struct_of_structs_of_structs_generated.rs
index 9c7ae0b..4e4597f 100644
--- a/tests/monster_test/my_game/example/struct_of_structs_of_structs_generated.rs
+++ b/tests/monster_test/my_game/example/struct_of_structs_of_structs_generated.rs
@@ -27,39 +27,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for StructOfStructsOfStructs {}
-impl flatbuffers::SafeSliceAccess for StructOfStructsOfStructs {}
impl<'a> flatbuffers::Follow<'a> for StructOfStructsOfStructs {
type Inner = &'a StructOfStructsOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a StructOfStructsOfStructs>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a StructOfStructsOfStructs {
type Inner = &'a StructOfStructsOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<StructOfStructsOfStructs>(buf, loc)
}
}
impl<'b> flatbuffers::Push for StructOfStructsOfStructs {
type Output = StructOfStructsOfStructs;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const StructOfStructsOfStructs as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b StructOfStructsOfStructs {
- type Output = StructOfStructsOfStructs;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const StructOfStructsOfStructs as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const StructOfStructsOfStructs as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -89,6 +75,9 @@
}
pub fn a(&self) -> &StructOfStructs {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[0..].as_ptr() as *const StructOfStructs) }
}
diff --git a/tests/monster_test/my_game/example/test_generated.rs b/tests/monster_test/my_game/example/test_generated.rs
index 1b72ee6..9849451 100644
--- a/tests/monster_test/my_game/example/test_generated.rs
+++ b/tests/monster_test/my_game/example/test_generated.rs
@@ -28,39 +28,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Test {}
-impl flatbuffers::SafeSliceAccess for Test {}
impl<'a> flatbuffers::Follow<'a> for Test {
type Inner = &'a Test;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Test>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Test {
type Inner = &'a Test;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Test>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Test {
type Output = Test;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Test as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Test {
- type Output = Test;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Test as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Test as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -92,47 +78,59 @@
}
pub fn a(&self) -> i16 {
- let mut mem = core::mem::MaybeUninit::<i16>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i16 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i16>(),
+ core::mem::size_of::<<i16 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i16) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i16 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i16>(),
+ core::mem::size_of::<<i16 as EndianScalar>::Scalar>(),
);
}
}
pub fn b(&self) -> i8 {
- let mut mem = core::mem::MaybeUninit::<i8>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i8 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[2..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i8>(),
+ core::mem::size_of::<<i8 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_b(&mut self, x: i8) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i8 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[2..].as_mut_ptr(),
- core::mem::size_of::<i8>(),
+ core::mem::size_of::<<i8 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs b/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs
index e97dfa0..063392a 100644
--- a/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs
+++ b/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TestSimpleTableWithEnum<'a> {
type Inner = TestSimpleTableWithEnum<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TestSimpleTableWithEnum { _tab: table }
}
#[allow(unused_mut)]
@@ -54,7 +54,10 @@
#[inline]
pub fn color(&self) -> Color {
- self._tab.get::<Color>(TestSimpleTableWithEnum::VT_COLOR, Some(Color::Green)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Color>(TestSimpleTableWithEnum::VT_COLOR, Some(Color::Green)).unwrap()}
}
}
diff --git a/tests/monster_test/my_game/example/type_aliases_generated.rs b/tests/monster_test/my_game/example/type_aliases_generated.rs
index dfa8d56..4c6eef7 100644
--- a/tests/monster_test/my_game/example/type_aliases_generated.rs
+++ b/tests/monster_test/my_game/example/type_aliases_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TypeAliases<'a> {
type Inner = TypeAliases<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -43,7 +43,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TypeAliases { _tab: table }
}
#[allow(unused_mut)]
@@ -79,7 +79,7 @@
let f32_ = self.f32_();
let f64_ = self.f64_();
let v8 = self.v8().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let vf64 = self.vf64().map(|x| {
x.into_iter().collect()
@@ -102,51 +102,87 @@
#[inline]
pub fn i8_(&self) -> i8 {
- self._tab.get::<i8>(TypeAliases::VT_I8_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i8>(TypeAliases::VT_I8_, Some(0)).unwrap()}
}
#[inline]
pub fn u8_(&self) -> u8 {
- self._tab.get::<u8>(TypeAliases::VT_U8_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u8>(TypeAliases::VT_U8_, Some(0)).unwrap()}
}
#[inline]
pub fn i16_(&self) -> i16 {
- self._tab.get::<i16>(TypeAliases::VT_I16_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(TypeAliases::VT_I16_, Some(0)).unwrap()}
}
#[inline]
pub fn u16_(&self) -> u16 {
- self._tab.get::<u16>(TypeAliases::VT_U16_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(TypeAliases::VT_U16_, Some(0)).unwrap()}
}
#[inline]
pub fn i32_(&self) -> i32 {
- self._tab.get::<i32>(TypeAliases::VT_I32_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(TypeAliases::VT_I32_, Some(0)).unwrap()}
}
#[inline]
pub fn u32_(&self) -> u32 {
- self._tab.get::<u32>(TypeAliases::VT_U32_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(TypeAliases::VT_U32_, Some(0)).unwrap()}
}
#[inline]
pub fn i64_(&self) -> i64 {
- self._tab.get::<i64>(TypeAliases::VT_I64_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(TypeAliases::VT_I64_, Some(0)).unwrap()}
}
#[inline]
pub fn u64_(&self) -> u64 {
- self._tab.get::<u64>(TypeAliases::VT_U64_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(TypeAliases::VT_U64_, Some(0)).unwrap()}
}
#[inline]
pub fn f32_(&self) -> f32 {
- self._tab.get::<f32>(TypeAliases::VT_F32_, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(TypeAliases::VT_F32_, Some(0.0)).unwrap()}
}
#[inline]
pub fn f64_(&self) -> f64 {
- self._tab.get::<f64>(TypeAliases::VT_F64_, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(TypeAliases::VT_F64_, Some(0.0)).unwrap()}
}
#[inline]
- pub fn v8(&self) -> Option<&'a [i8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i8>>>(TypeAliases::VT_V8, None).map(|v| v.safe_slice())
+ pub fn v8(&self) -> Option<flatbuffers::Vector<'a, i8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i8>>>(TypeAliases::VT_V8, None)}
}
#[inline]
pub fn vf64(&self) -> Option<flatbuffers::Vector<'a, f64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(TypeAliases::VT_VF64, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(TypeAliases::VT_VF64, None)}
}
}
diff --git a/tests/monster_test/my_game/example/vec_3_generated.rs b/tests/monster_test/my_game/example/vec_3_generated.rs
index fa0ab53..b4f0765 100644
--- a/tests/monster_test/my_game/example/vec_3_generated.rs
+++ b/tests/monster_test/my_game/example/vec_3_generated.rs
@@ -32,39 +32,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Vec3 {}
-impl flatbuffers::SafeSliceAccess for Vec3 {}
impl<'a> flatbuffers::Follow<'a> for Vec3 {
type Inner = &'a Vec3;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Vec3>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Vec3 {
type Inner = &'a Vec3;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Vec3>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Vec3 {
type Output = Vec3;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Vec3 as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Vec3 {
- type Output = Vec3;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Vec3 as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Vec3 as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -104,121 +90,154 @@
}
pub fn x(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_x(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn y(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[4..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_y(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[4..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn z(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[8..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_z(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[8..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn test1(&self) -> f64 {
- let mut mem = core::mem::MaybeUninit::<f64>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f64 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[16..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f64>(),
+ core::mem::size_of::<<f64 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_test1(&mut self, x: f64) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f64 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[16..].as_mut_ptr(),
- core::mem::size_of::<f64>(),
+ core::mem::size_of::<<f64 as EndianScalar>::Scalar>(),
);
}
}
pub fn test2(&self) -> Color {
- let mut mem = core::mem::MaybeUninit::<Color>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<Color as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[24..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<Color>(),
+ core::mem::size_of::<<Color as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_test2(&mut self, x: Color) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const Color as *const u8,
+ &x_le as *const _ as *const u8,
self.0[24..].as_mut_ptr(),
- core::mem::size_of::<Color>(),
+ core::mem::size_of::<<Color as EndianScalar>::Scalar>(),
);
}
}
pub fn test3(&self) -> &Test {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[26..].as_ptr() as *const Test) }
}
diff --git a/tests/monster_test/my_game/example_2/monster_generated.rs b/tests/monster_test/my_game/example_2/monster_generated.rs
index 34e0db1..a358d3b 100644
--- a/tests/monster_test/my_game/example_2/monster_generated.rs
+++ b/tests/monster_test/my_game/example_2/monster_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
type Inner = Monster<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -31,7 +31,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Monster { _tab: table }
}
#[allow(unused_mut)]
diff --git a/tests/monster_test/my_game/in_parent_namespace_generated.rs b/tests/monster_test/my_game/in_parent_namespace_generated.rs
index 263fae7..9220480 100644
--- a/tests/monster_test/my_game/in_parent_namespace_generated.rs
+++ b/tests/monster_test/my_game/in_parent_namespace_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for InParentNamespace<'a> {
type Inner = InParentNamespace<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -31,7 +31,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
InParentNamespace { _tab: table }
}
#[allow(unused_mut)]
diff --git a/tests/monster_test/my_game/other_name_space/from_include_generated.rs b/tests/monster_test/my_game/other_name_space/from_include_generated.rs
index 3c5165d..70cb407 100644
--- a/tests/monster_test/my_game/other_name_space/from_include_generated.rs
+++ b/tests/monster_test/my_game/other_name_space/from_include_generated.rs
@@ -51,10 +51,8 @@
impl<'a> flatbuffers::Follow<'a> for FromInclude {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i64>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i64>(buf, loc);
Self(b)
}
}
@@ -62,21 +60,21 @@
impl flatbuffers::Push for FromInclude {
type Output = FromInclude;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i64>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i64>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for FromInclude {
+ type Scalar = i64;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i64::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i64 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i64::from_le(self.0);
+ fn from_little_endian(v: i64) -> Self {
+ let b = i64::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test/my_game/other_name_space/table_b_generated.rs b/tests/monster_test/my_game/other_name_space/table_b_generated.rs
index da7b937..5652195 100644
--- a/tests/monster_test/my_game/other_name_space/table_b_generated.rs
+++ b/tests/monster_test/my_game/other_name_space/table_b_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableB<'a> {
type Inner = TableB<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableB { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn a(&self) -> Option<super::super::TableA<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)}
}
}
diff --git a/tests/monster_test/my_game/other_name_space/unused_generated.rs b/tests/monster_test/my_game/other_name_space/unused_generated.rs
index 1e4ad9c..69be486 100644
--- a/tests/monster_test/my_game/other_name_space/unused_generated.rs
+++ b/tests/monster_test/my_game/other_name_space/unused_generated.rs
@@ -27,39 +27,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Unused {}
-impl flatbuffers::SafeSliceAccess for Unused {}
impl<'a> flatbuffers::Follow<'a> for Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Unused>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Unused>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Unused {
type Output = Unused;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Unused {
- type Output = Unused;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Unused as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -89,24 +75,30 @@
}
pub fn a(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/monster_test/table_a_generated.rs b/tests/monster_test/table_a_generated.rs
index 0e6a78d..fd979b0 100644
--- a/tests/monster_test/table_a_generated.rs
+++ b/tests/monster_test/table_a_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableA<'a> {
type Inner = TableA<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableA { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn b(&self) -> Option<my_game::other_name_space::TableB<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)}
}
}
diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h
index f8bc4aa..f244529 100644
--- a/tests/monster_test_bfbs_generated.h
+++ b/tests/monster_test_bfbs_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
@@ -19,101 +19,101 @@
struct MonsterBinarySchema {
static const uint8_t *data() {
// Buffer containing the binary schema.
- static const uint8_t bfbsData[14784] = {
+ static const uint8_t bfbsData[15736] = {
0x1C,0x00,0x00,0x00,0x42,0x46,0x42,0x53,0x14,0x00,0x20,0x00,0x04,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,
0x14,0x00,0x18,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x24,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xA0,0x0E,0x00,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0xDC,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6D,0x6F,0x6E,0x00,0x04,0x00,0x00,0x00,
0x4D,0x4F,0x4E,0x53,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4C,0x05,0x00,0x00,0xB8,0x02,0x00,0x00,
0xF8,0x03,0x00,0x00,0x04,0x09,0x00,0x00,0x90,0x06,0x00,0x00,0xBC,0x07,0x00,0x00,0xEC,0x0A,0x00,0x00,
- 0x0F,0x00,0x00,0x00,0x9C,0x31,0x00,0x00,0x50,0x0E,0x00,0x00,0xE8,0x2D,0x00,0x00,0xC4,0x2E,0x00,0x00,
- 0x64,0x30,0x00,0x00,0xD8,0x2F,0x00,0x00,0xA0,0x35,0x00,0x00,0x80,0x34,0x00,0x00,0x70,0x0B,0x00,0x00,
- 0x78,0x32,0x00,0x00,0x68,0x36,0x00,0x00,0xA0,0x36,0x00,0x00,0x90,0x37,0x00,0x00,0x44,0x38,0x00,0x00,
- 0xEC,0x36,0x00,0x00,0x03,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x64,0xCB,0xFF,0xFF,0x94,0x36,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xE0,0x36,0x00,0x00,
- 0x78,0xCB,0xFF,0xFF,0x34,0x38,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xCC,0x36,0x00,0x00,
- 0x24,0x38,0x00,0x00,0x90,0xCB,0xFF,0xFF,0xC0,0x36,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0xB4,0x36,0x00,0x00,0x0C,0x38,0x00,0x00,0x00,0x00,0x0E,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
+ 0x0F,0x00,0x00,0x00,0x54,0x35,0x00,0x00,0x50,0x0E,0x00,0x00,0xA0,0x31,0x00,0x00,0x7C,0x32,0x00,0x00,
+ 0x1C,0x34,0x00,0x00,0x90,0x33,0x00,0x00,0x58,0x39,0x00,0x00,0x38,0x38,0x00,0x00,0x70,0x0B,0x00,0x00,
+ 0x30,0x36,0x00,0x00,0x20,0x3A,0x00,0x00,0x58,0x3A,0x00,0x00,0x48,0x3B,0x00,0x00,0xFC,0x3B,0x00,0x00,
+ 0xA4,0x3A,0x00,0x00,0x03,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0xAC,0xC7,0xFF,0xFF,0x4C,0x3A,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x98,0x3A,0x00,0x00,
+ 0xC0,0xC7,0xFF,0xFF,0xEC,0x3B,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x84,0x3A,0x00,0x00,
+ 0xDC,0x3B,0x00,0x00,0xD8,0xC7,0xFF,0xFF,0x78,0x3A,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x6C,0x3A,0x00,0x00,0xC4,0x3B,0x00,0x00,0x00,0x00,0x0E,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
0x0C,0x00,0x10,0x00,0x0E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x34,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xF4,0x00,0x00,0x00,
+ 0xEC,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xF4,0x00,0x00,0x00,
0x90,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,
0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x53,0x74,0x6F,0x72,0x61,0x67,
- 0x65,0x00,0x00,0x00,0xBA,0xFE,0xFF,0xFF,0x48,0x00,0x00,0x00,0x5C,0x0D,0x00,0x00,0xD4,0x2D,0x00,0x00,
+ 0x65,0x00,0x00,0x00,0xBA,0xFE,0xFF,0xFF,0x48,0x00,0x00,0x00,0x5C,0x0D,0x00,0x00,0x8C,0x31,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x2C,0xCC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x62,0x69,0x64,0x69,
+ 0x74,0xC8,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x62,0x69,0x64,0x69,
0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,
0x12,0x00,0x00,0x00,0x47,0x65,0x74,0x4D,0x69,0x6E,0x4D,0x61,0x78,0x48,0x69,0x74,0x50,0x6F,0x69,0x6E,
- 0x74,0x73,0x00,0x00,0x1E,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,0xF8,0x0C,0x00,0x00,0x70,0x2D,0x00,0x00,
+ 0x74,0x73,0x00,0x00,0x1E,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,0xF8,0x0C,0x00,0x00,0x28,0x31,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x90,0xCC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x63,0x6C,0x69,0x65,
+ 0xD8,0xC8,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x63,0x6C,0x69,0x65,
0x6E,0x74,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,
0x0E,0x00,0x00,0x00,0x47,0x65,0x74,0x4D,0x61,0x78,0x48,0x69,0x74,0x50,0x6F,0x69,0x6E,0x74,0x00,0x00,
- 0x7E,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x14,0x2D,0x00,0x00,0x94,0x0C,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x7E,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0xCC,0x30,0x00,0x00,0x94,0x0C,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0xF4,0xCC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x65,0x72,0x76,
+ 0x3C,0xC9,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x65,0x72,0x76,
0x65,0x72,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,
- 0x1C,0xCD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
+ 0x64,0xC9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
0x0A,0x00,0x00,0x00,0x69,0x64,0x65,0x6D,0x70,0x6F,0x74,0x65,0x6E,0x74,0x00,0x00,0x08,0x00,0x00,0x00,
0x52,0x65,0x74,0x72,0x69,0x65,0x76,0x65,0x00,0x00,0x0E,0x00,0x18,0x00,0x04,0x00,0x08,0x00,0x0C,0x00,
- 0x10,0x00,0x14,0x00,0x0E,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x0C,0x00,0x00,0x80,0x2C,0x00,0x00,
+ 0x10,0x00,0x14,0x00,0x0E,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x0C,0x00,0x00,0x38,0x30,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x80,0xCD,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x65,
+ 0xC8,0xC9,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x65,
0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,
0x05,0x00,0x00,0x00,0x53,0x74,0x6F,0x72,0x65,0x00,0x00,0x00,0x82,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x34,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x34,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xE8,0x37,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x7C,0xC9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xA4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
0x2C,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
0x6C,0x65,0x2E,0x41,0x6E,0x79,0x41,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x41,0x6C,0x69,0x61,0x73,
0x65,0x73,0x00,0x00,0x7E,0xF8,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xCA,0xFF,0xFF,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xC7,0xFF,0xFF,
0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x33,0x00,0x00,
0xB6,0xF8,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0xCB,0xFF,0xFF,0x00,0x00,0x00,0x0F,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xC7,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x32,0x00,0x00,0xEE,0xF8,0xFF,0xFF,
0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xCB,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA8,0xC7,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x31,0x00,0x00,0x72,0xF8,0xFF,0xFF,0x1C,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xF8,0xFF,0xFF,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,0xC6,0xFE,0xFF,0xFF,
0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0xEC,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xCE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,
+ 0xA4,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xCA,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD8,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,
0x64,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,
0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,0x6E,0x79,0x55,0x6E,0x69,0x71,0x75,0x65,0x41,0x6C,0x69,0x61,
0x73,0x65,0x73,0x00,0xBE,0xF9,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xCC,0xFF,0xFF,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xC8,0xFF,0xFF,
0x00,0x00,0x00,0x0F,0x0A,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x32,0x00,0x00,
0xF6,0xF9,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xCC,0xFF,0xFF,0x00,0x00,0x00,0x0F,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB0,0xC8,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x54,0x53,0x00,0x00,0x1E,0xFC,0xFF,0xFF,
0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x9C,0xCC,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0xE4,0xC8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x4D,0x00,0x00,0x00,0xAE,0xF9,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0xF9,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x4E,0x4F,0x4E,0x45,0x00,0x00,0x12,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,
0x10,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xA0,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xC4,0xCF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x58,0x35,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x0C,0xCC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
0x12,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,
0x6E,0x79,0x00,0x00,0xEE,0xFC,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x0F,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0xC9,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x0A,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x5F,0x45,
0x78,0x61,0x6D,0x70,0x6C,0x65,0x32,0x5F,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x36,0xFD,0xFF,0xFF,
0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xB4,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0xFC,0xC9,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x17,0x00,0x00,0x00,0x54,0x65,0x73,0x74,0x53,0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57,
0x69,0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x7E,0xFD,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xCD,0xFF,0xFF,
+ 0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0xCA,0xFF,0xFF,
0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,
0x74,0x65,0x72,0x00,0x12,0xFB,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0xFB,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,0xA2,0xFD,0xFF,0xFF,0x6C,0x00,0x00,0x00,0x58,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x4C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xC0,0xD1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x34,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0xCE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67,
- 0x73,0x00,0x00,0x00,0x44,0xD1,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
+ 0x73,0x00,0x00,0x00,0x8C,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4C,
0x6F,0x6E,0x67,0x45,0x6E,0x75,0x6D,0x00,0x7E,0xFC,0xFF,0xFF,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
@@ -125,8 +125,8 @@
0xDE,0xFE,0xFF,0xFF,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0xFC,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x07,0x00,0x00,0x00,0x4C,0x6F,0x6E,0x67,0x4F,0x6E,0x65,0x00,0xDE,0xFC,0xFF,0xFF,0x40,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x2F,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x44,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xD8,0x32,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x8C,0xCE,0xFF,0xFF,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xC8,0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x52,
0x61,0x63,0x65,0x00,0x6E,0xFF,0xFF,0xFF,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
@@ -141,12 +141,12 @@
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x64,0xFD,0xFF,0xFF,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4E,0x6F,0x6E,0x65,0x00,0x00,0x12,0x00,0x1C,0x00,0x04,0x00,
0x08,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x12,0x00,0x00,0x00,0x9C,0x00,0x00,0x00,
- 0x88,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xDC,0x2D,0x00,0x00,
+ 0x88,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x94,0x31,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x20,0x43,0x6F,0x6D,0x70,0x6F,0x73,0x69,
0x74,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6F,0x6E,0x65,0x6E,0x74,0x73,0x20,0x6F,0x66,0x20,0x4D,0x6F,0x6E,
0x73,0x74,0x65,0x72,0x20,0x63,0x6F,0x6C,0x6F,0x72,0x2E,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x60,0xD4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
- 0x09,0x00,0x00,0x00,0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67,0x73,0x00,0x00,0x00,0xE4,0xD3,0xFF,0xFF,
+ 0xA8,0xD0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
+ 0x09,0x00,0x00,0x00,0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67,0x73,0x00,0x00,0x00,0x2C,0xD0,0xFF,0xFF,
0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
0x18,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x43,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x00,
@@ -166,605 +166,652 @@
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x52,0x65,0x64,0x00,0x00,0x00,0x12,0x00,0x18,0x00,0x04,0x00,
0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x12,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xA0,0x2D,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x78,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x09,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x58,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0xC0,0xD1,0xFF,0xFF,0x00,0x00,0x00,0x09,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,
0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x46,0x72,0x6F,0x6D,0x49,0x6E,
0x63,0x6C,0x75,0x64,0x65,0x00,0x0E,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,
0x0E,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x49,0x6E,0x63,0x6C,0x75,0x64,0x65,0x56,
- 0x61,0x6C,0x00,0x00,0xE4,0xD3,0xFF,0xFF,0x4C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x40,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xE4,0x00,0x00,0x00,
+ 0x61,0x6C,0x00,0x00,0x2C,0xD0,0xFF,0xFF,0x4C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0xF8,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xE4,0x00,0x00,0x00,
0xB0,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x60,0x02,0x00,0x00,
0xB0,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xF0,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x5C,0x00,0x00,0x00,
0x24,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
- 0x6C,0x65,0x2E,0x54,0x79,0x70,0x65,0x41,0x6C,0x69,0x61,0x73,0x65,0x73,0x00,0x00,0x00,0xDB,0xFF,0xFF,
+ 0x6C,0x65,0x2E,0x54,0x79,0x70,0x65,0x41,0x6C,0x69,0x61,0x73,0x65,0x73,0x00,0x00,0x48,0xD7,0xFF,0xFF,
0x00,0x00,0x00,0x01,0x0B,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x14,0xE1,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x76,0x66,0x36,0x34,0x00,0x00,0x00,0x00,0x34,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0A,0x00,0x18,0x00,
- 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0xE1,0xFF,0xFF,
- 0x00,0x00,0x0E,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x38,0x00,0x00,0x4A,0xD8,0xFF,0xFF,
+ 0x00,0x00,0x00,0x00,0x5C,0xDD,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x76,0x66,0x36,0x34,0x00,0x00,0x00,0x00,0x7C,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0A,0x00,0x18,0x00,
+ 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0xDD,0xFF,0xFF,
+ 0x00,0x00,0x0E,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x38,0x00,0x00,0x92,0xD4,0xFF,0xFF,
0x09,0x00,0x16,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x14,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x66,0x36,0x34,0x00,0x7A,0xD8,0xFF,0xFF,0x08,0x00,0x14,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x66,0x33,0x32,0x00,0xA6,0xD8,0xFF,0xFF,0x07,0x00,0x12,0x00,0x20,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0A,
- 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x75,0x36,0x34,0x00,0xD6,0xD8,0xFF,0xFF,
+ 0x5C,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
+ 0x66,0x36,0x34,0x00,0xC2,0xD4,0xFF,0xFF,0x08,0x00,0x14,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD4,0xCF,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,
+ 0x03,0x00,0x00,0x00,0x66,0x33,0x32,0x00,0xEE,0xD4,0xFF,0xFF,0x07,0x00,0x12,0x00,0x20,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x0A,
+ 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x75,0x36,0x34,0x00,0x1E,0xD5,0xFF,0xFF,
0x06,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xA0,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x69,0x36,0x34,0x00,0x06,0xD9,0xFF,0xFF,0x05,0x00,0x0E,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x75,0x33,0x32,0x00,0x32,0xD9,0xFF,0xFF,0x04,0x00,0x0C,0x00,0x1C,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x07,
- 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x33,0x32,0x00,0x5E,0xD9,0xFF,0xFF,0x03,0x00,0x0A,0x00,
- 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0xD7,0xFF,0xFF,
+ 0xE8,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
+ 0x69,0x36,0x34,0x00,0x4E,0xD5,0xFF,0xFF,0x05,0x00,0x0E,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xD0,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,
+ 0x03,0x00,0x00,0x00,0x75,0x33,0x32,0x00,0x7A,0xD5,0xFF,0xFF,0x04,0x00,0x0C,0x00,0x1C,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0xD0,0xFF,0xFF,0x00,0x00,0x00,0x07,
+ 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x33,0x32,0x00,0xA6,0xD5,0xFF,0xFF,0x03,0x00,0x0A,0x00,
+ 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xD3,0xFF,0xFF,
0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x75,0x31,0x36,0x00,
- 0x8E,0xD9,0xFF,0xFF,0x02,0x00,0x08,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x58,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x69,0x31,0x36,0x00,0xBE,0xD9,0xFF,0xFF,0x01,0x00,0x06,0x00,0x20,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x04,
+ 0xD6,0xD5,0xFF,0xFF,0x02,0x00,0x08,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0xA0,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x03,0x00,0x00,0x00,0x69,0x31,0x36,0x00,0x06,0xD6,0xFF,0xFF,0x01,0x00,0x06,0x00,0x20,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x04,
0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x75,0x38,0x00,0x00,0x00,0x00,0x1A,0x00,
0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD4,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x38,0x00,0x00,0xA8,0xD6,0xFF,0xFF,0x30,0x01,0x00,0x00,
- 0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x7C,0x28,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x38,0x00,0x00,0xF0,0xD2,0xFF,0xFF,0x50,0x01,0x00,0x00,
+ 0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x34,0x2C,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20,
0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E,
0x74,0x3A,0x20,0x22,0x6D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x22,0x00,
- 0x36,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0xE4,0x04,0x00,0x00,0x4C,0x05,0x00,0x00,0xAC,0x05,0x00,0x00,
- 0xA8,0x09,0x00,0x00,0x78,0x1B,0x00,0x00,0x88,0x18,0x00,0x00,0x44,0x0F,0x00,0x00,0x7C,0x1C,0x00,0x00,
- 0xC0,0x1D,0x00,0x00,0xEC,0x1B,0x00,0x00,0x44,0x01,0x00,0x00,0xC4,0x00,0x00,0x00,0x30,0x1E,0x00,0x00,
- 0x30,0x1D,0x00,0x00,0xA8,0x01,0x00,0x00,0x10,0x07,0x00,0x00,0x80,0x0D,0x00,0x00,0xA0,0x1E,0x00,0x00,
- 0x2C,0x02,0x00,0x00,0x5C,0x03,0x00,0x00,0x08,0x0C,0x00,0x00,0x58,0x1A,0x00,0x00,0xE4,0x19,0x00,0x00,
- 0xA0,0x0E,0x00,0x00,0xC4,0x1A,0x00,0x00,0x90,0x11,0x00,0x00,0x78,0x0F,0x00,0x00,0x68,0x19,0x00,0x00,
- 0xE0,0x0F,0x00,0x00,0x88,0x18,0x00,0x00,0xC0,0x16,0x00,0x00,0x1C,0x17,0x00,0x00,0x10,0x11,0x00,0x00,
- 0x8C,0x10,0x00,0x00,0x30,0x10,0x00,0x00,0x20,0x16,0x00,0x00,0xE0,0x13,0x00,0x00,0xFC,0x14,0x00,0x00,
- 0x58,0x12,0x00,0x00,0x84,0x15,0x00,0x00,0xE4,0x12,0x00,0x00,0x5C,0x14,0x00,0x00,0xB4,0x11,0x00,0x00,
- 0x50,0x17,0x00,0x00,0x38,0x02,0x00,0x00,0xC0,0x07,0x00,0x00,0x78,0x0D,0x00,0x00,0x58,0x03,0x00,0x00,
- 0xD8,0x0D,0x00,0x00,0x58,0x05,0x00,0x00,0x88,0x0C,0x00,0x00,0xDC,0x09,0x00,0x00,0x8C,0x0A,0x00,0x00,
- 0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,
- 0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x00,0x62,0xFD,0xFF,0xFF,0x35,0x00,0x6E,0x00,0x54,0x00,0x00,0x00,
- 0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE8,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x64,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x18,0x00,0x00,0x00,0x6C,0x6F,0x6E,0x67,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x6E,0x6F,0x72,0x6D,0x61,0x6C,
- 0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x00,0x00,0x62,0xE6,0xFF,0xFF,0x34,0x00,0x6C,0x00,
+ 0x3E,0x00,0x00,0x00,0x38,0x08,0x00,0x00,0x9C,0x08,0x00,0x00,0x04,0x09,0x00,0x00,0x64,0x09,0x00,0x00,
+ 0x60,0x0D,0x00,0x00,0x30,0x1F,0x00,0x00,0xFC,0x00,0x00,0x00,0x3C,0x1C,0x00,0x00,0xF8,0x12,0x00,0x00,
+ 0x30,0x20,0x00,0x00,0x74,0x21,0x00,0x00,0xB0,0x03,0x00,0x00,0xB4,0x02,0x00,0x00,0x98,0x1F,0x00,0x00,
+ 0xF0,0x04,0x00,0x00,0x70,0x04,0x00,0x00,0xDC,0x21,0x00,0x00,0xDC,0x20,0x00,0x00,0xFC,0x03,0x00,0x00,
+ 0x50,0x05,0x00,0x00,0xAC,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xB0,0x0A,0x00,0x00,0x20,0x11,0x00,0x00,
+ 0x40,0x22,0x00,0x00,0x08,0x03,0x00,0x00,0x04,0x02,0x00,0x00,0xC4,0x05,0x00,0x00,0xF4,0x06,0x00,0x00,
+ 0xA0,0x0F,0x00,0x00,0xF0,0x1D,0x00,0x00,0x7C,0x1D,0x00,0x00,0x38,0x12,0x00,0x00,0x5C,0x1E,0x00,0x00,
+ 0x28,0x15,0x00,0x00,0x10,0x13,0x00,0x00,0x00,0x1D,0x00,0x00,0x78,0x13,0x00,0x00,0x20,0x1C,0x00,0x00,
+ 0x58,0x1A,0x00,0x00,0xB4,0x1A,0x00,0x00,0xA8,0x14,0x00,0x00,0x24,0x14,0x00,0x00,0xC8,0x13,0x00,0x00,
+ 0xB8,0x19,0x00,0x00,0x78,0x17,0x00,0x00,0x94,0x18,0x00,0x00,0xF0,0x15,0x00,0x00,0x1C,0x19,0x00,0x00,
+ 0x7C,0x16,0x00,0x00,0xF4,0x17,0x00,0x00,0x4C,0x15,0x00,0x00,0xE8,0x1A,0x00,0x00,0xD0,0x05,0x00,0x00,
+ 0x58,0x0B,0x00,0x00,0x10,0x11,0x00,0x00,0xF0,0x06,0x00,0x00,0x70,0x11,0x00,0x00,0xF0,0x08,0x00,0x00,
+ 0x20,0x10,0x00,0x00,0x74,0x0D,0x00,0x00,0x24,0x0E,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
+ 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x00,
+ 0xC2,0xFD,0xFF,0xFF,0x3D,0x00,0x7E,0x00,0x50,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x50,0xD7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x36,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xEC,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0C,
+ 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x64,0x6F,0x75,0x62,0x6C,0x65,0x5F,0x69,
+ 0x6E,0x66,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x52,0xEC,0xFF,0xFF,0x3C,0x00,0x7C,0x00,
+ 0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0xC4,0xD7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x36,0x30,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA8,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,
+ 0x19,0x00,0x00,0x00,0x6E,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,0x69,0x6E,0x69,0x74,
+ 0x79,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x00,0xAA,0xFE,0xFF,0xFF,0x3B,0x00,0x7A,0x00,
+ 0x4C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x38,0xD8,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x39,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x1C,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
+ 0x6E,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,
+ 0x00,0x00,0x00,0x00,0x3A,0xED,0xFF,0xFF,0x3A,0x00,0x78,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
+ 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xAC,0xD8,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0x90,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x70,0x6F,0x73,0x69,
+ 0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,0x69,0x6E,0x69,0x74,0x79,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,
+ 0x74,0x00,0x00,0x00,0xB2,0xED,0xFF,0xFF,0x39,0x00,0x76,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
+ 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0xD9,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0x08,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x69,0x6E,0x66,0x69,
+ 0x6E,0x69,0x74,0x79,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x1A,0x00,0x20,0x00,0x08,0x00,
+ 0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,
+ 0x1A,0x00,0x00,0x00,0x38,0x00,0x74,0x00,0x4C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xA8,0xD9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x35,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x8C,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0B,
+ 0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x70,0x6F,0x73,0x69,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,
+ 0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x00,0x00,0xAA,0xEE,0xFF,0xFF,0x37,0x00,0x72,0x00,
+ 0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x1C,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x35,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,
+ 0x0B,0x00,0x00,0x00,0x69,0x6E,0x66,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x12,0xEF,0xFF,0xFF,
+ 0x36,0x00,0x70,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x84,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x35,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0B,
+ 0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x6E,0x61,0x6E,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,
+ 0x62,0xFD,0xFF,0xFF,0x35,0x00,0x6E,0x00,0x54,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xE8,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x35,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x64,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x0A,
+ 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x6C,0x6F,0x6E,0x67,
+ 0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,
+ 0x00,0x00,0x00,0x00,0x62,0xE6,0xFF,0xFF,0x34,0x00,0x6C,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x5C,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x32,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD8,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x6C,0x6F,0x6E,0x67,0x5F,0x65,0x6E,0x75,
+ 0x6D,0x5F,0x6E,0x6F,0x6E,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,
+ 0xEC,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x01,0x33,0x00,0x6A,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xD8,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x30,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x6E,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x6C,0x69,0x6E,
+ 0x65,0x00,0x00,0x00,0x00,0xDC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x35,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC8,0xD8,0xFF,0xFF,0x00,0x00,0x00,0x0F,
+ 0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x6E,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,
+ 0x6E,0x6C,0x69,0x6E,0x65,0x00,0x00,0x00,0x80,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x32,0x00,0x68,0x00,
+ 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0xDC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x35,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x38,0xE8,0xFF,0xFF,
+ 0x00,0x00,0x0E,0x0F,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x73,0x63,0x61,0x6C,
+ 0x61,0x72,0x5F,0x6B,0x65,0x79,0x5F,0x73,0x6F,0x72,0x74,0x65,0x64,0x5F,0x74,0x61,0x62,0x6C,0x65,0x73,
+ 0x00,0x00,0x00,0x00,0xF4,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x31,0x00,0x66,0x00,0x78,0x00,0x00,0x00,
+ 0x68,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xDC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,
+ 0x65,0x64,0x5F,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x10,0xDD,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x39,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x0C,0xE7,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,
+ 0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x1A,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,
+ 0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
+ 0x30,0x00,0x64,0x00,0x54,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0xA0,0xDD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x38,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x1C,0xDD,0xFF,0xFF,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x73,0x69,0x67,0x6E,0x65,0x64,0x5F,0x65,
+ 0x6E,0x75,0x6D,0x00,0x20,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2F,0x00,0x62,0x00,0x48,0x00,0x00,0x00,
+ 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x08,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x34,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD8,0xE9,0xFF,0xFF,0x00,0x00,0x0E,0x04,
+ 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,
+ 0x66,0x5F,0x65,0x6E,0x75,0x6D,0x73,0x00,0x88,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2E,0x00,0x60,0x00,
+ 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x34,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x38,0xDB,0xFF,0xFF,
+ 0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,
+ 0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x00,0x00,0x00,0xDA,0xE9,0xFF,0xFF,0x2D,0x00,0x5E,0x00,
0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x35,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD8,0xDA,0xFF,0xFF,
- 0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,
- 0x6C,0x6F,0x6E,0x67,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x6E,0x6F,0x6E,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x64,
- 0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0xEC,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x01,0x33,0x00,0x6A,0x00,
- 0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD8,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x6E,0x61,0x74,0x69,
- 0x76,0x65,0x5F,0x69,0x6E,0x6C,0x69,0x6E,0x65,0x00,0x00,0x00,0x00,0xDC,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0xC8,0xD8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,
- 0x6E,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x6C,0x69,0x6E,0x65,0x00,0x00,0x00,0x80,0xE6,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x32,0x00,0x68,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0xDC,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x30,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x38,0xE8,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x18,0x00,0x00,0x00,0x73,0x63,0x61,0x6C,0x61,0x72,0x5F,0x6B,0x65,0x79,0x5F,0x73,0x6F,0x72,0x74,0x65,
- 0x64,0x5F,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0xF4,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x31,0x00,0x66,0x00,0x78,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xDC,0xFF,0xFF,
- 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,
- 0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,
- 0x72,0x00,0x00,0x00,0x10,0xDD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x34,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xE7,0xFF,0xFF,0x00,0x00,0x0E,0x04,
- 0x01,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,
- 0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x1A,0x00,
- 0x20,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x30,0x00,0x64,0x00,0x54,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xDD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x34,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x1C,0xDD,0xFF,0xFF,
- 0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,
- 0x73,0x69,0x67,0x6E,0x65,0x64,0x5F,0x65,0x6E,0x75,0x6D,0x00,0x20,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x2F,0x00,0x62,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0xD8,0xE9,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,
- 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x65,0x6E,0x75,0x6D,0x73,0x00,0x88,0xE8,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x2E,0x00,0x60,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xDE,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x36,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x38,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x0D,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x00,0x00,0x00,
- 0xDA,0xE9,0xFF,0xFF,0x2D,0x00,0x5E,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xDE,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x35,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x50,0xDE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,
- 0x73,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x5C,0xE9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x5C,0x00,
- 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xDF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x34,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xDC,0xFF,0xFF,
- 0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,
- 0x75,0x6E,0x69,0x71,0x75,0x65,0x00,0x00,0xAA,0xEA,0xFF,0xFF,0x2B,0x00,0x5A,0x00,0x4C,0x00,0x00,0x00,
- 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xA4,0xDF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x34,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x20,0xDF,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,
- 0x75,0x6E,0x69,0x71,0x75,0x65,0x5F,0x74,0x79,0x70,0x65,0x00,0x28,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x2A,0x00,0x58,0x00,0x00,0x01,0x00,0x00,0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x34,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3C,0xE0,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x64,0xE0,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,
- 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
- 0x90,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,
- 0x00,0x00,0x00,0x00,0xBC,0xE0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,
- 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xC8,0xEA,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,
- 0x1F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,
- 0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x42,0xEC,0xFF,0xFF,
- 0x29,0x00,0x56,0x00,0x04,0x01,0x00,0x00,0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4C,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x34,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xE1,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x90,0xE1,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,
- 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
- 0xBC,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,
- 0x00,0x00,0x00,0x00,0xE8,0xE1,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,
- 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x94,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,
- 0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x00,0x80,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x28,0x00,0x54,0x00,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x78,0xE2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x34,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x94,0xE2,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xBC,0xE2,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,
- 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
- 0xE8,0xE2,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2E,0x67,0x65,0x74,
- 0x28,0x29,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0x18,0xE3,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0x30,0xED,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,
- 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,
- 0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0xAA,0xEE,0xFF,0xFF,0x27,0x00,0x52,0x00,
- 0xD4,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0xB0,0xE3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x39,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xCC,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x34,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x50,0xDE,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
+ 0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,
+ 0x5C,0xE9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x5C,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x44,0xDF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x34,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xDC,0xFF,0xFF,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x75,0x6E,0x69,0x71,0x75,0x65,0x00,0x00,
+ 0xAA,0xEA,0xFF,0xFF,0x2B,0x00,0x5A,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA4,0xDF,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x33,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x20,0xDF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x75,0x6E,0x69,0x71,0x75,0x65,0x5F,0x74,
+ 0x79,0x70,0x65,0x00,0x28,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2A,0x00,0x58,0x00,0x00,0x01,0x00,0x00,
+ 0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x20,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x32,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3C,0xE0,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xF4,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x64,0xE0,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,
- 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x20,0xE4,0xFF,0xFF,0x14,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x90,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,
+ 0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0xBC,0xE0,0xFF,0xFF,
+ 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
+ 0xC8,0xEA,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,
+ 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,
+ 0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x42,0xEC,0xFF,0xFF,0x29,0x00,0x56,0x00,0x04,0x01,0x00,0x00,
+ 0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x4C,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x31,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xE1,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x90,0xE1,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xBC,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,
+ 0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0xE8,0xE1,0xFF,0xFF,
+ 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
+ 0x94,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
+ 0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,
+ 0x00,0x00,0x00,0x00,0x80,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x28,0x00,0x54,0x00,0x10,0x01,0x00,0x00,
+ 0x00,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0xB4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x78,0xE2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x30,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x94,0xE2,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xBC,0xE2,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xE8,0xE2,0xFF,0xFF,0x14,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2E,0x67,0x65,0x74,0x28,0x29,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,
+ 0x18,0xE3,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,
+ 0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x30,0xED,0xFF,0xFF,
+ 0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,
+ 0x66,0x5F,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,
+ 0x65,0x73,0x00,0x00,0xAA,0xEE,0xFF,0xFF,0x27,0x00,0x52,0x00,0xD4,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
+ 0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB0,0xE3,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0xCC,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
+ 0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,
+ 0xF4,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,
+ 0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,
+ 0x00,0x00,0x00,0x00,0x20,0xE4,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,
+ 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xCC,0xE2,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,
+ 0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0xB4,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x26,0x00,0x50,0x00,
+ 0x84,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xE4,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0xBC,0xE4,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,
+ 0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xA8,0xF0,0xFF,0xFF,
+ 0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x76,0x65,0x63,0x74,
+ 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x73,0x74,0x72,0x6F,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61,
+ 0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0x68,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x25,0x00,0x4E,0x00,
+ 0xD0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x5C,0xE5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x37,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x78,0xE5,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA0,0xE5,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xCC,0xE5,0xFF,0xFF,0x14,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xCC,0xE2,0xFF,0xFF,
- 0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x63,0x6F,0x5F,0x6F,
- 0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0xB4,0xEE,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x26,0x00,0x50,0x00,0x84,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0xA0,0xE4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x38,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xBC,0xE4,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0xA8,0xF0,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x1C,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x73,0x74,0x72,0x6F,0x6E,0x67,
- 0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0x68,0xEF,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x25,0x00,0x4E,0x00,0xD0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xD8,0xEF,0xFF,0xFF,
+ 0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,
+ 0x66,0x5F,0x77,0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0x00,
+ 0x4E,0xF1,0xFF,0xFF,0x24,0x00,0x4C,0x00,0xD4,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xE5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x33,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x78,0xE5,0xFF,0xFF,
+ 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x54,0xE6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x33,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x70,0xE6,0xFF,0xFF,
0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA0,0xE5,0xFF,0xFF,
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x98,0xE6,0xFF,0xFF,
0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,
0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
- 0xCC,0xE5,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,
+ 0xC4,0xE6,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,
0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0xD8,0xEF,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
- 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x77,0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,
- 0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0x00,0x4E,0xF1,0xFF,0xFF,0x24,0x00,0x4C,0x00,0xD4,0x00,0x00,0x00,
- 0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x54,0xE6,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x36,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x70,0xE6,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
- 0x00,0x00,0x00,0x00,0x98,0xE6,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,
- 0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,
- 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xC4,0xE6,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,
- 0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x70,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x0A,
- 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x73,0x69,0x6E,0x67,0x6C,0x65,0x5F,0x77,
- 0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x5C,0xF1,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x23,0x00,0x4A,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xE7,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x35,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x14,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x15,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x72,0x65,0x66,0x65,0x72,0x72,
- 0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0xCC,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x01,0x22,0x00,0x48,0x00,
+ 0x00,0x00,0x00,0x00,0x70,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x15,0x00,0x00,0x00,0x73,0x69,0x6E,0x67,0x6C,0x65,0x5F,0x77,0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,
+ 0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x5C,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x01,0x23,0x00,0x4A,0x00,
0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB4,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x33,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x7C,0xE4,0xFF,0xFF,
- 0x00,0x00,0x00,0x0F,0x0B,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x70,0x61,0x72,0x65,
- 0x6E,0x74,0x5F,0x6E,0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x5F,0x74,0x65,0x73,0x74,0x00,0x00,0x00,
- 0x3C,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x01,0x21,0x00,0x46,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x33,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x14,0xF3,0xFF,0xFF,
+ 0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x76,0x65,0x63,0x74,
+ 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,
+ 0xCC,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x01,0x22,0x00,0x48,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x24,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x33,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x20,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,
- 0x11,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x64,0x6F,0x75,0x62,0x6C,0x65,
- 0x73,0x00,0x00,0x00,0xA4,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x01,0x20,0x00,0x44,0x00,0x44,0x00,0x00,0x00,
+ 0xB4,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x34,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x7C,0xE4,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x0B,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x70,0x61,0x72,0x65,0x6E,0x74,0x5F,0x6E,0x61,0x6D,0x65,0x73,
+ 0x70,0x61,0x63,0x65,0x5F,0x74,0x65,0x73,0x74,0x00,0x00,0x00,0x3C,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x01,
+ 0x21,0x00,0x46,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0x20,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x76,0x65,0x63,0x74,
+ 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x64,0x6F,0x75,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0xA4,0xF2,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x20,0x00,0x44,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xE8,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x32,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x88,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x09,0x08,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,
+ 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6C,0x6F,0x6E,0x67,0x73,0x00,0x08,0xF3,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x1F,0x00,0x42,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF0,0xE8,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x31,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0xC0,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x35,0x00,0x00,0x00,0x68,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,
+ 0x1E,0x00,0x40,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x54,0xE9,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x70,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,
+ 0x74,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,
+ 0x00,0x00,0x00,0x00,0xEC,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1D,0x00,0x3E,0x00,0x48,0x00,0x00,0x00,
0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x8C,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x33,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x88,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x09,
- 0x08,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6C,0x6F,
- 0x6E,0x67,0x73,0x00,0x08,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1F,0x00,0x42,0x00,0x48,0x00,0x00,0x00,
- 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xF0,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x33,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC0,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0F,
- 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x35,0x00,0x00,0x00,
- 0x68,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1E,0x00,0x40,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x54,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x33,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x70,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,
- 0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x74,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,0x00,0x00,0x00,0x00,0xEC,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x1D,0x00,0x3E,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0xA4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
- 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x6F,0x72,0x74,0x65,0x64,0x73,0x74,0x72,
- 0x75,0x63,0x74,0x00,0x5C,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1C,0x00,0x3C,0x00,0x44,0x00,0x00,0x00,
- 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x44,0xEA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x32,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x40,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0D,
- 0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,
- 0x74,0x72,0x69,0x6E,0x67,0x32,0x00,0x00,0xAE,0xF5,0xFF,0xFF,0x1B,0x00,0x3A,0x00,0x44,0x00,0x00,0x00,
- 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xA8,0xEA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x32,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x8C,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B,
- 0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x33,0x00,0x00,0x9A,0xFF,0xFF,0xFF,
- 0x1A,0x00,0x38,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x0C,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x32,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xF0,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B,
- 0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x32,0x00,0x00,0x00,0x00,0x1A,0x00,
- 0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x19,0x00,0x36,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x6E,0x86,0x1B,0xF0,0xF9,0x21,0x09,0x40,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x70,0xE7,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
- 0x66,0x00,0x00,0x00,0x00,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x18,0x00,0x34,0x00,0x44,0x00,0x00,0x00,
- 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xE8,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x32,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xE4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x02,
- 0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x62,
- 0x6F,0x6F,0x6C,0x73,0x00,0x00,0x00,0x00,0x52,0xF7,0xFF,0xFF,0x17,0x00,0x32,0x00,0x74,0x00,0x00,0x00,
- 0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x50,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x32,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x6C,0xEC,0xFF,0xFF,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x14,0xEB,0xFF,0xFF,
- 0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
- 0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0xE6,0xF7,0xFF,0xFF,
- 0x16,0x00,0x30,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xEC,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x32,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x00,0xED,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
- 0x00,0x00,0x00,0x00,0xA8,0xEB,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,
- 0x61,0x00,0x00,0x00,0x7A,0xF8,0xFF,0xFF,0x15,0x00,0x2E,0x00,0xCC,0x00,0x00,0x00,0xBC,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
- 0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x9C,0xED,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
- 0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,
- 0xC4,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x53,0x74,0x61,0x74,
- 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
- 0xEC,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,
- 0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0xE0,0xE9,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
- 0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,
- 0x66,0xF9,0xFF,0xFF,0x14,0x00,0x2C,0x00,0x70,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xD4,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x32,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x0F,
+ 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,
+ 0x79,0x6F,0x66,0x73,0x6F,0x72,0x74,0x65,0x64,0x73,0x74,0x72,0x75,0x63,0x74,0x00,0x5C,0xF4,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x1C,0x00,0x3C,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xEA,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x38,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x40,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0D,0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E,0x67,0x32,0x00,0x00,
+ 0xAE,0xF5,0xFF,0xFF,0x1B,0x00,0x3A,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA8,0xEA,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x37,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x8C,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x66,0x33,0x00,0x00,0x9A,0xFF,0xFF,0xFF,0x1A,0x00,0x38,0x00,0x50,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0C,0xEB,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x36,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0xF0,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x66,0x32,0x00,0x00,0x00,0x00,0x1A,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,
+ 0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
+ 0x19,0x00,0x36,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x6E,0x86,0x1B,0xF0,0xF9,0x21,0x09,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x8C,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x32,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x70,0xE7,0xFF,0xFF,0x00,0x00,0x00,0x0B,
+ 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x00,0x00,0x00,0x00,0xF6,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x18,0x00,0x34,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE8,0xEB,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x34,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0xE4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x02,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x62,0x6F,0x6F,0x6C,0x73,0x00,0x00,0x00,0x00,
+ 0x52,0xF7,0xFF,0xFF,0x17,0x00,0x32,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x64,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x30,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x80,0xEE,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x70,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,
- 0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,
- 0x61,0x00,0x00,0x00,0xF6,0xF9,0xFF,0xFF,0x13,0x00,0x2A,0x00,0x70,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,
+ 0x50,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x33,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x6C,0xEC,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x14,0xEB,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,
+ 0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0xE6,0xF7,0xFF,0xFF,0x16,0x00,0x30,0x00,0x74,0x00,0x00,0x00,
+ 0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x32,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0xED,0xFF,0xFF,
+ 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA8,0xEB,0xFF,0xFF,
+ 0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
+ 0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0x7A,0xF8,0xFF,0xFF,
+ 0x15,0x00,0x2E,0x00,0xCC,0x00,0x00,0x00,0xBC,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x80,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x32,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x9C,0xED,0xFF,0xFF,0x18,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xC4,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xEC,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xE0,0xE9,0xFF,0xFF,
+ 0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,
+ 0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0x66,0xF9,0xFF,0xFF,0x14,0x00,0x2C,0x00,
+ 0x70,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x64,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0x80,0xEE,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
+ 0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,
+ 0x70,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
+ 0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0xF6,0xF9,0xFF,0xFF,
+ 0x13,0x00,0x2A,0x00,0x70,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF4,0xEE,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x39,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x10,0xEF,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
+ 0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,
+ 0xB4,0xED,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,
+ 0x86,0xFA,0xFF,0xFF,0x12,0x00,0x28,0x00,0x70,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x84,0xEF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x38,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA0,0xEF,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
+ 0x00,0x00,0x00,0x00,0x44,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,
+ 0x00,0x00,0x00,0x00,0x16,0xFB,0xFF,0xFF,0x11,0x00,0x26,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xF4,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x31,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x10,0xEF,0xFF,0xFF,0x14,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,
- 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xB4,0xED,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,
- 0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x86,0xFA,0xFF,0xFF,0x12,0x00,0x28,0x00,0x70,0x00,0x00,0x00,
- 0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0xEF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x31,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA0,0xEF,0xFF,0xFF,
- 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,
- 0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x44,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x09,
- 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,
- 0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x16,0xFB,0xFF,0xFF,0x11,0x00,0x26,0x00,
- 0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x30,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
- 0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x1C,0xEC,0xFF,0xFF,
- 0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,
- 0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0xA2,0xFB,0xFF,0xFF,0x10,0x00,0x24,0x00,
- 0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0xBC,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
- 0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA8,0xEC,0xFF,0xFF,
- 0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,
- 0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x2E,0xFC,0xFF,0xFF,0x0F,0x00,0x22,0x00,
- 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x28,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x31,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xEF,0xFF,0xFF,
- 0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
- 0x62,0x6F,0x6F,0x6C,0x00,0x00,0x00,0x00,0xA4,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0E,0x00,0x20,0x00,
- 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x31,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x54,0xEE,0xFF,0xFF,
- 0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
- 0x65,0x6D,0x70,0x74,0x79,0x00,0x00,0x00,0x08,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0D,0x00,0x1E,0x00,
- 0x78,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF4,0xF1,0xFF,0xFF,0x14,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00,
- 0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,
- 0x24,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x33,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x20,0xFC,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75,
- 0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x00,0xA8,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0C,0x00,0x1C,0x00,
- 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x90,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x31,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x58,0xEF,0xFF,0xFF,
- 0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x65,0x6E,0x65,0x6D,
- 0x79,0x00,0x00,0x00,0x08,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0B,0x00,0x1A,0x00,0xB4,0x00,0x00,0x00,
- 0xA0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x20,0x6D,0x75,0x6C,0x74,0x69,0x6C,0x69,0x6E,0x65,0x20,0x74,
- 0x6F,0x6F,0x00,0x00,0x49,0x00,0x00,0x00,0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20,
- 0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E,
- 0x74,0x3A,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x65,0x6E,0x64,0x20,0x75,0x70,0x20,
- 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6E,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x63,0x6F,0x64,
- 0x65,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x2C,0xFF,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
- 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,
- 0xE0,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0A,0x00,0x18,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x14,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x31,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x30,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x1C,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,
+ 0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,
+ 0x00,0x00,0x00,0x00,0xA2,0xFB,0xFF,0xFF,0x10,0x00,0x24,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xA0,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x31,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xBC,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,
+ 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA8,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,
+ 0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,
+ 0x00,0x00,0x00,0x00,0x2E,0xFC,0xFF,0xFF,0x0F,0x00,0x22,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0xC8,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x30,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xFD,0xFF,0xFF,0x00,0x00,0x0E,0x0D,0x04,0x00,0x00,0x00,
- 0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E,
- 0x67,0x00,0x00,0x00,0x48,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x09,0x00,0x16,0x00,0x58,0x00,0x00,0x00,
- 0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x30,0xF4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x10,0x00,0x10,0x00,0x06,0x00,0x07,0x00,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x06,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x34,0x00,0x00,0x00,0xB8,0xFE,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x08,0x00,0x14,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xF4,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x69,0x64,0x00,0x00,0x68,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,
- 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
- 0x07,0x00,0x12,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x90,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x42,0xFD,0xFF,0xFF,
- 0x06,0x00,0x10,0x00,0x58,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x84,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x04,
- 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F,
- 0x72,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
- 0x05,0x00,0x0E,0x00,0x54,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x10,0x00,0x0C,0x00,0x06,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x69,0x6E,0x76,0x65,0x6E,0x74,0x6F,0x72,
- 0x79,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x0C,0x00,
- 0x98,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x94,0xF6,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x70,0x72,0x69,0x6F,0x72,0x69,0x74,0x79,0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0xD4,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
- 0x0A,0x00,0x00,0x00,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x00,0x00,0x78,0xF5,0xFF,0xFF,
- 0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x72,0x69,0x65,
- 0x6E,0x64,0x6C,0x79,0x00,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
- 0x03,0x00,0x0A,0x00,0x64,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF7,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x6B,0x65,0x79,0x00,0x78,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x33,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x0D,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6E,0x61,0x6D,0x65,0x00,0x00,0x00,0x00,0x9A,0xFF,0xFF,0xFF,
- 0x02,0x00,0x08,0x00,0x54,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xDC,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x78,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x68,0x70,0x00,0x00,0x00,0x00,0x1A,0x00,
- 0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x54,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0xF8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x6D,0x61,0x6E,0x61,0x00,0x00,0x00,0x00,0x1C,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x05,0x00,0x1C,0x00,0x00,0x00,
- 0x00,0x01,0x04,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x9C,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x09,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x70,0x6F,0x73,0x00,0x44,0xF6,0xFF,0xFF,0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0xE0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
- 0x19,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x52,
- 0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,
- 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
- 0x00,0x01,0x04,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xF9,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x6B,0x65,0x79,0x00,0xA8,0xF9,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
- 0x00,0x00,0x00,0x00,0x50,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x24,0xF7,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0xCC,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
- 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x1A,0x00,
- 0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,
- 0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x08,0x00,0x48,0x00,0x00,0x00,
+ 0x28,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x35,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x62,0x6F,0x6F,0x6C,0x00,0x00,0x00,0x00,
+ 0xA4,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0E,0x00,0x20,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x8C,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x34,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x54,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x65,0x6D,0x70,0x74,0x79,0x00,0x00,0x00,
+ 0x08,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0D,0x00,0x1E,0x00,0x78,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xF4,0xF1,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
+ 0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66,
+ 0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x24,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0x20,0xFC,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
+ 0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x00,
+ 0xA8,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0C,0x00,0x1C,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x90,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x32,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x58,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x65,0x6E,0x65,0x6D,0x79,0x00,0x00,0x00,0x08,0xFD,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x0B,0x00,0x1A,0x00,0xB4,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,
+ 0x20,0x6D,0x75,0x6C,0x74,0x69,0x6C,0x69,0x6E,0x65,0x20,0x74,0x6F,0x6F,0x00,0x00,0x49,0x00,0x00,0x00,
+ 0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,
+ 0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x74,0x3A,0x20,0x74,0x68,0x69,0x73,0x20,
+ 0x77,0x69,0x6C,0x6C,0x20,0x65,0x6E,0x64,0x20,0x75,0x70,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x67,
+ 0x65,0x6E,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x63,0x6F,0x64,0x65,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x31,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x2C,0xFF,0xFF,0xFF,0x00,0x00,0x0E,0x0F,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,
+ 0x79,0x6F,0x66,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0xE0,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,
+ 0x0A,0x00,0x18,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xC8,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0xC4,0xFD,0xFF,0xFF,0x00,0x00,0x0E,0x0D,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
+ 0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E,0x67,0x00,0x00,0x00,0x48,0xFE,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x09,0x00,0x16,0x00,0x58,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x30,0xF4,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x10,0x00,0x10,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
+ 0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x34,0x00,0x00,0x00,0xB8,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x08,0x00,0x14,0x00,
+ 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xF4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xF1,0xFF,0xFF,
+ 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
+ 0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x07,0x00,0x12,0x00,0x4C,0x00,0x00,0x00,
0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x70,0xFA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x0C,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x06,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x75,0x6E,0x74,0x00,0x00,0x00,
- 0x76,0xFB,0xFF,0xFF,0x01,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x40,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x76,0x61,0x6C,0x00,0xB8,0xF7,0xFF,0xFF,0x00,0x01,0x04,0x00,0x1C,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x0D,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x88,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x24,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0xDC,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
- 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x72,0x75,0x63,
- 0x74,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x00,
- 0xF4,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x20,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x10,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,
- 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x54,0x06,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xD0,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
- 0x1E,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,
- 0x74,0x72,0x75,0x63,0x74,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x00,0x00,0xCC,0xFF,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x02,0x00,0x0C,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xAC,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x1C,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0x01,0x00,0x08,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xFC,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x61,0x00,0x00,0x00,0x38,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2C,0x05,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x6C,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
- 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,0x62,0x69,0x6C,0x69,0x74,0x79,0x00,0x00,
- 0xCE,0xFD,0xFF,0xFF,0x01,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xE0,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x64,0x69,0x73,0x74,0x61,0x6E,0x63,0x65,0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,
- 0x54,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
- 0x14,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x1C,0x00,0x20,0x00,
- 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x28,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x66,0x6F,0x72,0x63,0x65,0x5F,0x61,0x6C,
- 0x69,0x67,0x6E,0x00,0x06,0x00,0x00,0x00,0xC4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
- 0x60,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xE4,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
- 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x56,0x65,0x63,0x33,0x00,0x00,0x00,0x1E,0x00,
- 0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x14,0x00,0x05,0x00,0x0A,0x00,0x1E,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x1A,0x00,0x02,0x00,
- 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xFB,0xFF,0xFF,
- 0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
- 0x33,0x00,0x00,0x00,0x7A,0xFD,0xFF,0xFF,0x00,0x00,0x04,0x00,0x18,0x00,0x01,0x00,0x24,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x04,
- 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
- 0x32,0x00,0x00,0x00,0x9E,0xFF,0xFF,0xFF,0x03,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x31,0x00,0x00,0x00,0xEA,0xFD,0xFF,0xFF,
- 0x00,0x00,0x02,0x00,0x08,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xE8,0xFA,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x7A,0x00,0x1A,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x6E,0xFB,0xFF,0xFF,0x1C,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x14,0x00,0x1C,0x00,0x04,0x00,0x08,0x00,
- 0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x14,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
- 0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,
- 0x63,0x73,0x68,0x61,0x72,0x70,0x5F,0x70,0x61,0x72,0x74,0x69,0x61,0x6C,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x4C,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
- 0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x53,0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57,0x69,
- 0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,
- 0x06,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,
- 0x00,0x00,0x04,0x00,0x3C,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x0C,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x54,0xFD,0xFF,0xFF,
- 0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
- 0x3C,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
- 0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x00,0x00,0x00,0x1E,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0A,0x00,
- 0x1E,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD4,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x62,0xFD,0xFF,0xFF,0x30,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x14,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x37,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x90,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x01,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
+ 0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x42,0xFD,0xFF,0xFF,0x06,0x00,0x10,0x00,0x58,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0xF5,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x00,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,
+ 0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,
+ 0x18,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x0E,0x00,0x54,0x00,0x00,0x00,
+ 0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x04,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x07,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,
+ 0x09,0x00,0x00,0x00,0x69,0x6E,0x76,0x65,0x6E,0x74,0x6F,0x72,0x79,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,
+ 0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00,
+ 0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x0C,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,
+ 0x2C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x94,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x70,0x72,0x69,0x6F,0x72,0x69,0x74,0x79,
+ 0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x34,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD4,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x64,0x65,0x70,0x72,
+ 0x65,0x63,0x61,0x74,0x65,0x64,0x00,0x00,0x78,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x72,0x69,0x65,0x6E,0x64,0x6C,0x79,0x00,0x00,0x1A,0x00,
+ 0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,
+ 0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x00,0x0A,0x00,0x64,0x00,0x00,0x00,
+ 0x54,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x78,0xF7,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x0D,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x6E,0x61,0x6D,0x65,0x00,0x00,0x00,0x00,0x9A,0xFF,0xFF,0xFF,0x02,0x00,0x08,0x00,0x54,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xDC,0xF7,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x78,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x02,0x00,0x00,0x00,0x68,0x70,0x00,0x00,0x00,0x00,0x1A,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,
+ 0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
+ 0x01,0x00,0x06,0x00,0x54,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x5C,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x31,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xF8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05,
+ 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6D,0x61,0x6E,0x61,0x00,0x00,0x00,0x00,
+ 0x1C,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x10,0x00,0x14,0x00,0x05,0x00,0x1C,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x48,0x00,0x00,0x00,
+ 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0xD4,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x9C,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x0F,
+ 0x09,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x70,0x6F,0x73,0x00,0x44,0xF6,0xFF,0xFF,
+ 0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xE0,0x08,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
+ 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,
+ 0x65,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x05,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x74,0x00,0x00,0x00,
+ 0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xF9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0xA8,0xF9,0xFF,0xFF,
+ 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x50,0xF8,0xFF,0xFF,
+ 0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
+ 0x24,0xF7,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
+ 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0xCC,0x00,0x00,0x00,
+ 0x98,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
+ 0x6C,0x65,0x2E,0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,
+ 0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x01,0x02,0x00,0x08,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xFA,0xFF,0xFF,
+ 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
+ 0x6B,0x65,0x79,0x00,0x0C,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x05,0x00,0x00,0x00,0x63,0x6F,0x75,0x6E,0x74,0x00,0x00,0x00,0x76,0xFB,0xFF,0xFF,0x01,0x00,0x06,0x00,
+ 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xF9,0xFF,0xFF,
+ 0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x76,0x61,0x6C,0x00,
+ 0xB8,0xF7,0xFF,0xFF,0x00,0x01,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x0D,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x69,0x64,0x00,0x00,0x88,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x01,0x24,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xDC,0x06,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,
+ 0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x72,0x75,0x63,0x74,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,
+ 0x74,0x73,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x00,0xF4,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,
+ 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xF8,0xFF,0xFF,
+ 0x00,0x00,0x00,0x0F,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
+ 0x10,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x54,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
+ 0xD0,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
+ 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x72,0x75,0x63,0x74,0x4F,0x66,0x53,
+ 0x74,0x72,0x75,0x63,0x74,0x73,0x00,0x00,0xCC,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x0C,0x00,
+ 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAC,0xF8,0xFF,0xFF,
+ 0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
+ 0x1C,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x14,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x08,0x00,
+ 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xF8,0xFF,0xFF,
+ 0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,
+ 0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,
+ 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x0F,
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x38,0xF9,0xFF,0xFF,
+ 0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x2C,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
+ 0x6C,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
+ 0x6C,0x65,0x2E,0x41,0x62,0x69,0x6C,0x69,0x74,0x79,0x00,0x00,0xCE,0xFD,0xFF,0xFF,0x01,0x00,0x04,0x00,
+ 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFF,0xFF,
+ 0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x64,0x69,0x73,0x74,0x61,0x6E,0x63,0x65,
+ 0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x44,0x00,0x00,0x00,
+ 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x70,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x54,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x08,
+ 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x14,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,
+ 0x07,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x1C,0x00,0x20,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
+ 0x68,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x28,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0xE4,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
+ 0x0B,0x00,0x00,0x00,0x66,0x6F,0x72,0x63,0x65,0x5F,0x61,0x6C,0x69,0x67,0x6E,0x00,0x06,0x00,0x00,0x00,
+ 0xC4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x30,0x01,0x00,0x00,
+ 0xE4,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
+ 0x6C,0x65,0x2E,0x56,0x65,0x63,0x33,0x00,0x00,0x00,0x1E,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00,
+ 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x05,0x00,0x0A,0x00,
+ 0x1E,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x1A,0x00,0x02,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x33,0x00,0x00,0x00,0x7A,0xFD,0xFF,0xFF,
+ 0x00,0x00,0x04,0x00,0x18,0x00,0x01,0x00,0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x10,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x32,0x00,0x00,0x00,0x9E,0xFF,0xFF,0xFF,
+ 0x03,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x68,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0x74,0x65,0x73,0x74,0x31,0x00,0x00,0x00,0xEA,0xFD,0xFF,0xFF,0x00,0x00,0x02,0x00,0x08,0x00,0x04,0x00,
+ 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0xFA,0xFF,0xFF,
+ 0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7A,0x00,0x1A,0x00,0x14,0x00,0x08,0x00,
+ 0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,
+ 0x1A,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x2C,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x79,0x00,0x00,0x00,0x6E,0xFB,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x54,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x78,0x00,0x00,0x00,0x14,0x00,0x1C,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,
+ 0x14,0x00,0x18,0x00,0x14,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+ 0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x00,
+ 0x08,0x00,0x0C,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x63,0x73,0x68,0x61,0x72,0x70,0x5F,0x70,
+ 0x61,0x72,0x74,0x69,0x61,0x6C,0x00,0x00,0x01,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
+ 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x53,
+ 0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57,0x69,0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x00,
+ 0x00,0x00,0x1A,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x3C,0x00,0x00,0x00,
+ 0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x00,0x14,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x10,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
+ 0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x54,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,
+ 0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
+ 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x00,
+ 0x00,0x00,0x1E,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0A,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x01,0x00,
+ 0x02,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0xD4,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x62,0x00,0x00,0x00,0x62,0xFD,0xFF,0xFF,0x30,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,
+ 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x61,0x00,0x00,0x00,0xE4,0xFE,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x08,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
+ 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x32,0x2E,0x4D,0x6F,0x6E,0x73,
+ 0x74,0x65,0x72,0x00,0x20,0xFF,0xFF,0xFF,0x34,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x2F,0x2F,0x6D,0x6F,0x6E,0x73,0x74,0x65,
+ 0x72,0x5F,0x74,0x65,0x73,0x74,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x18,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x49,0x6E,0x50,0x61,0x72,0x65,0x6E,0x74,0x4E,
+ 0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x00,0x00,0x00,0x00,0x78,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,
+ 0x3C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
+ 0x2F,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x2F,0x69,0x6E,0x63,0x6C,0x75,
+ 0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x31,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x54,0x61,0x62,0x6C,0x65,0x41,0x00,0x00,
+ 0x74,0xFF,0xFF,0xFF,0x00,0x01,0x04,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x58,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xC4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
+ 0x44,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,
+ 0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x54,0x61,0x62,0x6C,0x65,0x42,0x00,0x00,0x00,0x00,
+ 0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x05,0x00,0x1C,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x30,0x00,0x00,0x00,
0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xE4,0xFE,0xFF,0xFF,0x1C,0x00,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
- 0x6C,0x65,0x32,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x20,0xFF,0xFF,0xFF,0x34,0x00,0x00,0x00,
- 0x2C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
- 0x2F,0x2F,0x6D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x5F,0x74,0x65,0x73,0x74,0x2E,0x66,0x62,0x73,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x49,
- 0x6E,0x50,0x61,0x72,0x65,0x6E,0x74,0x4E,0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x00,0x00,0x00,0x00,
- 0x78,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2F,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,
- 0x73,0x74,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x31,0x2E,0x66,0x62,0x73,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x54,0x61,0x62,0x6C,0x65,0x41,0x00,0x00,0x74,0xFF,0xFF,0xFF,0x00,0x01,0x04,0x00,0x20,0x00,0x00,0x00,
- 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x0F,
- 0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x14,0x00,0x18,0x00,
- 0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x14,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xC4,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
- 0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x54,0x61,
- 0x62,0x6C,0x65,0x42,0x00,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x05,0x00,0x1C,0x00,0x00,0x00,
- 0x00,0x01,0x04,0x00,0x30,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x0F,0x0E,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
- 0x14,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x1C,0x00,
- 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x2F,0x2F,0x69,0x6E,
- 0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x2F,0x73,0x75,0x62,0x2F,0x69,0x6E,0x63,0x6C,0x75,
- 0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x32,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,
- 0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x55,0x6E,0x75,0x73,0x65,0x64,
- 0x00,0x00,0x1A,0x00,0x10,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1A,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x61,0x00,0x00,0x00
+ 0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0E,0x00,0x00,0x00,
+ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x14,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,
+ 0x07,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x1C,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
+ 0x50,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
+ 0x04,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x2F,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,
+ 0x73,0x74,0x2F,0x73,0x75,0x62,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x32,
+ 0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
+ 0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,
+ 0x53,0x70,0x61,0x63,0x65,0x2E,0x55,0x6E,0x75,0x73,0x65,0x64,0x00,0x00,0x1A,0x00,0x10,0x00,0x04,0x00,
+ 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
+ 0x1A,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00
};
return bfbsData;
}
static size_t size() {
- return 14784;
+ return 15736;
}
const uint8_t *begin() {
return data();
diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h
index deab77b..ce5acf8 100644
--- a/tests/monster_test_generated.h
+++ b/tests/monster_test_generated.h
@@ -10,9 +10,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
@@ -1309,6 +1309,14 @@
MyGame::Example::Test native_inline{};
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0);
MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne;
+ float nan_default = std::numeric_limits<float>::quiet_NaN();
+ float inf_default = std::numeric_limits<float>::infinity();
+ float positive_inf_default = std::numeric_limits<float>::infinity();
+ float infinity_default = std::numeric_limits<float>::infinity();
+ float positive_infinity_default = std::numeric_limits<float>::infinity();
+ float negative_inf_default = -std::numeric_limits<float>::infinity();
+ float negative_infinity_default = -std::numeric_limits<float>::infinity();
+ double double_inf_default = std::numeric_limits<double>::infinity();
MonsterT() = default;
MonsterT(const MonsterT &o);
MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default;
@@ -1375,7 +1383,15 @@
VT_SCALAR_KEY_SORTED_TABLES = 104,
VT_NATIVE_INLINE = 106,
VT_LONG_ENUM_NON_ENUM_DEFAULT = 108,
- VT_LONG_ENUM_NORMAL_DEFAULT = 110
+ VT_LONG_ENUM_NORMAL_DEFAULT = 110,
+ VT_NAN_DEFAULT = 112,
+ VT_INF_DEFAULT = 114,
+ VT_POSITIVE_INF_DEFAULT = 116,
+ VT_INFINITY_DEFAULT = 118,
+ VT_POSITIVE_INFINITY_DEFAULT = 120,
+ VT_NEGATIVE_INF_DEFAULT = 122,
+ VT_NEGATIVE_INFINITY_DEFAULT = 124,
+ VT_DOUBLE_INF_DEFAULT = 126
};
const MyGame::Example::Vec3 *pos() const {
return GetStruct<const MyGame::Example::Vec3 *>(VT_POS);
@@ -1732,6 +1748,54 @@
bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast<MyGame::Example::LongEnum>(2ULL)) {
return SetField<uint64_t>(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(_long_enum_normal_default), 2ULL);
}
+ float nan_default() const {
+ return GetField<float>(VT_NAN_DEFAULT, std::numeric_limits<float>::quiet_NaN());
+ }
+ bool mutate_nan_default(float _nan_default = std::numeric_limits<float>::quiet_NaN()) {
+ return SetField<float>(VT_NAN_DEFAULT, _nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ float inf_default() const {
+ return GetField<float>(VT_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_inf_default(float _inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INF_DEFAULT, _inf_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_inf_default() const {
+ return GetField<float>(VT_POSITIVE_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ float infinity_default() const {
+ return GetField<float>(VT_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_infinity_default(float _infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_infinity_default() const {
+ return GetField<float>(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float negative_inf_default() const {
+ return GetField<float>(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ float negative_infinity_default() const {
+ return GetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ double double_inf_default() const {
+ return GetField<double>(VT_DOUBLE_INF_DEFAULT, std::numeric_limits<double>::infinity());
+ }
+ bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits<double>::infinity()) {
+ return SetField<double>(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits<double>::infinity());
+ }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<MyGame::Example::Vec3>(verifier, VT_POS, 8) &&
@@ -1823,6 +1887,14 @@
VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
+ VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
verifier.EndTable();
}
MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
@@ -2017,6 +2089,30 @@
void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) {
fbb_.AddElement<uint64_t>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(long_enum_normal_default), 2ULL);
}
+ void add_nan_default(float nan_default) {
+ fbb_.AddElement<float>(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ void add_inf_default(float inf_default) {
+ fbb_.AddElement<float>(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_inf_default(float positive_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_infinity_default(float infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_infinity_default(float positive_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_negative_inf_default(float negative_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_negative_infinity_default(float negative_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_double_inf_default(double double_inf_default) {
+ fbb_.AddElement<double>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits<double>::infinity());
+ }
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
@@ -2083,8 +2179,17 @@
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<MyGame::Example::Stat>>> scalar_key_sorted_tables = 0,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
MonsterBuilder builder_(_fbb);
+ builder_.add_double_inf_default(double_inf_default);
builder_.add_long_enum_normal_default(long_enum_normal_default);
builder_.add_long_enum_non_enum_default(long_enum_non_enum_default);
builder_.add_non_owning_reference(non_owning_reference);
@@ -2094,6 +2199,13 @@
builder_.add_testhashs64_fnv1a(testhashs64_fnv1a);
builder_.add_testhashu64_fnv1(testhashu64_fnv1);
builder_.add_testhashs64_fnv1(testhashs64_fnv1);
+ builder_.add_negative_infinity_default(negative_infinity_default);
+ builder_.add_negative_inf_default(negative_inf_default);
+ builder_.add_positive_infinity_default(positive_infinity_default);
+ builder_.add_infinity_default(infinity_default);
+ builder_.add_positive_inf_default(positive_inf_default);
+ builder_.add_inf_default(inf_default);
+ builder_.add_nan_default(nan_default);
builder_.add_native_inline(native_inline);
builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables);
builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer);
@@ -2195,7 +2307,15 @@
std::vector<flatbuffers::Offset<MyGame::Example::Stat>> *scalar_key_sorted_tables = nullptr,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
auto name__ = name ? _fbb.CreateString(name) : 0;
auto inventory__ = inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0;
auto test4__ = test4 ? _fbb.CreateVectorOfStructs<MyGame::Example::Test>(*test4) : 0;
@@ -2271,7 +2391,15 @@
scalar_key_sorted_tables__,
native_inline,
long_enum_non_enum_default,
- long_enum_normal_default);
+ long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default);
}
flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
@@ -2767,7 +2895,15 @@
(lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr<MyGame::Example::StatT> const &a, flatbuffers::unique_ptr<MyGame::Example::StatT> const &b) { return (a == b) || (a && b && *a == *b); })) &&
(lhs.native_inline == rhs.native_inline) &&
(lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) &&
- (lhs.long_enum_normal_default == rhs.long_enum_normal_default);
+ (lhs.long_enum_normal_default == rhs.long_enum_normal_default) &&
+ (lhs.nan_default == rhs.nan_default) &&
+ (lhs.inf_default == rhs.inf_default) &&
+ (lhs.positive_inf_default == rhs.positive_inf_default) &&
+ (lhs.infinity_default == rhs.infinity_default) &&
+ (lhs.positive_infinity_default == rhs.positive_infinity_default) &&
+ (lhs.negative_inf_default == rhs.negative_inf_default) &&
+ (lhs.negative_infinity_default == rhs.negative_infinity_default) &&
+ (lhs.double_inf_default == rhs.double_inf_default);
}
inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) {
@@ -2820,7 +2956,15 @@
testrequirednestedflatbuffer(o.testrequirednestedflatbuffer),
native_inline(o.native_inline),
long_enum_non_enum_default(o.long_enum_non_enum_default),
- long_enum_normal_default(o.long_enum_normal_default) {
+ long_enum_normal_default(o.long_enum_normal_default),
+ nan_default(o.nan_default),
+ inf_default(o.inf_default),
+ positive_inf_default(o.positive_inf_default),
+ infinity_default(o.infinity_default),
+ positive_infinity_default(o.positive_infinity_default),
+ negative_inf_default(o.negative_inf_default),
+ negative_infinity_default(o.negative_infinity_default),
+ double_inf_default(o.double_inf_default) {
testarrayoftables.reserve(o.testarrayoftables.size());
for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); }
vector_of_referrables.reserve(o.vector_of_referrables.size());
@@ -2884,6 +3028,14 @@
std::swap(native_inline, o.native_inline);
std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default);
std::swap(long_enum_normal_default, o.long_enum_normal_default);
+ std::swap(nan_default, o.nan_default);
+ std::swap(inf_default, o.inf_default);
+ std::swap(positive_inf_default, o.positive_inf_default);
+ std::swap(infinity_default, o.infinity_default);
+ std::swap(positive_infinity_default, o.positive_infinity_default);
+ std::swap(negative_inf_default, o.negative_inf_default);
+ std::swap(negative_infinity_default, o.negative_infinity_default);
+ std::swap(double_inf_default, o.double_inf_default);
return *this;
}
@@ -2949,6 +3101,14 @@
{ auto _e = native_inline(); if (_e) _o->native_inline = *_e; }
{ auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; }
{ auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; }
+ { auto _e = nan_default(); _o->nan_default = _e; }
+ { auto _e = inf_default(); _o->inf_default = _e; }
+ { auto _e = positive_inf_default(); _o->positive_inf_default = _e; }
+ { auto _e = infinity_default(); _o->infinity_default = _e; }
+ { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; }
+ { auto _e = negative_inf_default(); _o->negative_inf_default = _e; }
+ { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; }
+ { auto _e = double_inf_default(); _o->double_inf_default = _e; }
}
inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
@@ -3012,6 +3172,14 @@
auto _native_inline = &_o->native_inline;
auto _long_enum_non_enum_default = _o->long_enum_non_enum_default;
auto _long_enum_normal_default = _o->long_enum_normal_default;
+ auto _nan_default = _o->nan_default;
+ auto _inf_default = _o->inf_default;
+ auto _positive_inf_default = _o->positive_inf_default;
+ auto _infinity_default = _o->infinity_default;
+ auto _positive_infinity_default = _o->positive_infinity_default;
+ auto _negative_inf_default = _o->negative_inf_default;
+ auto _negative_infinity_default = _o->negative_infinity_default;
+ auto _double_inf_default = _o->double_inf_default;
return MyGame::Example::CreateMonster(
_fbb,
_pos,
@@ -3066,7 +3234,15 @@
_scalar_key_sorted_tables,
_native_inline,
_long_enum_non_enum_default,
- _long_enum_normal_default);
+ _long_enum_normal_default,
+ _nan_default,
+ _inf_default,
+ _positive_inf_default,
+ _infinity_default,
+ _positive_infinity_default,
+ _negative_inf_default,
+ _negative_infinity_default,
+ _double_inf_default);
}
@@ -3846,7 +4022,15 @@
{ flatbuffers::ET_SEQUENCE, 1, 5 },
{ flatbuffers::ET_SEQUENCE, 0, 3 },
{ flatbuffers::ET_ULONG, 0, 12 },
- { flatbuffers::ET_ULONG, 0, 12 }
+ { flatbuffers::ET_ULONG, 0, 12 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_DOUBLE, 0, -1 }
};
static const flatbuffers::TypeFunction type_refs[] = {
MyGame::Example::Vec3TypeTable,
@@ -3917,10 +4101,18 @@
"scalar_key_sorted_tables",
"native_inline",
"long_enum_non_enum_default",
- "long_enum_normal_default"
+ "long_enum_normal_default",
+ "nan_default",
+ "inf_default",
+ "positive_inf_default",
+ "infinity_default",
+ "positive_infinity_default",
+ "negative_inf_default",
+ "negative_infinity_default",
+ "double_inf_default"
};
static const flatbuffers::TypeTable tt = {
- flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names
+ flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names
};
return &tt;
}
diff --git a/tests/monster_test_generated.lobster b/tests/monster_test_generated.lobster
index c3ee785..d6390fd 100644
--- a/tests/monster_test_generated.lobster
+++ b/tests/monster_test_generated.lobster
@@ -425,13 +425,29 @@
return LongEnum(buf_.flatbuffers_field_uint64(pos_, 108, 0))
def long_enum_normal_default() -> LongEnum:
return LongEnum(buf_.flatbuffers_field_uint64(pos_, 110, 2))
+ def nan_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 112, nan)
+ def inf_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 114, inf)
+ def positive_inf_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 116, +inf)
+ def infinity_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 118, infinity)
+ def positive_infinity_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 120, +infinity)
+ def negative_inf_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 122, -inf)
+ def negative_infinity_default() -> float:
+ return buf_.flatbuffers_field_float32(pos_, 124, -infinity)
+ def double_inf_default() -> float:
+ return buf_.flatbuffers_field_float64(pos_, 126, inf)
def GetRootAsMonster(buf:string): return Monster { buf, buf.flatbuffers_indirect(0) }
struct MonsterBuilder:
b_:flatbuffers_builder
def start():
- b_.StartObject(54)
+ b_.StartObject(62)
return this
def add_pos(pos:flatbuffers_offset):
b_.PrependStructSlot(0, pos)
@@ -592,6 +608,30 @@
def add_long_enum_normal_default(long_enum_normal_default:LongEnum):
b_.PrependUint64Slot(53, long_enum_normal_default, 2)
return this
+ def add_nan_default(nan_default:float):
+ b_.PrependFloat32Slot(54, nan_default, nan)
+ return this
+ def add_inf_default(inf_default:float):
+ b_.PrependFloat32Slot(55, inf_default, inf)
+ return this
+ def add_positive_inf_default(positive_inf_default:float):
+ b_.PrependFloat32Slot(56, positive_inf_default, +inf)
+ return this
+ def add_infinity_default(infinity_default:float):
+ b_.PrependFloat32Slot(57, infinity_default, infinity)
+ return this
+ def add_positive_infinity_default(positive_infinity_default:float):
+ b_.PrependFloat32Slot(58, positive_infinity_default, +infinity)
+ return this
+ def add_negative_inf_default(negative_inf_default:float):
+ b_.PrependFloat32Slot(59, negative_inf_default, -inf)
+ return this
+ def add_negative_infinity_default(negative_infinity_default:float):
+ b_.PrependFloat32Slot(60, negative_infinity_default, -infinity)
+ return this
+ def add_double_inf_default(double_inf_default:float):
+ b_.PrependFloat64Slot(61, double_inf_default, inf)
+ return this
def end():
return b_.EndObject()
diff --git a/tests/monster_test_generated.py b/tests/monster_test_generated.py
index 0fa2140..b70c31a 100644
--- a/tests/monster_test_generated.py
+++ b/tests/monster_test_generated.py
@@ -125,6 +125,11 @@
return cls.InitFromObj(inParentNamespace)
@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, inParentNamespace):
x = InParentNamespaceT()
x._UnPack(inParentNamespace)
@@ -181,6 +186,11 @@
return cls.InitFromObj(monster)
@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, monster):
x = MonsterT()
x._UnPack(monster)
@@ -236,6 +246,11 @@
return cls.InitFromObj(test)
@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, test):
x = TestT()
x._UnPack(test)
@@ -300,6 +315,11 @@
return cls.InitFromObj(testSimpleTableWithEnum)
@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, testSimpleTableWithEnum):
x = TestSimpleTableWithEnumT()
x._UnPack(testSimpleTableWithEnum)
@@ -385,6 +405,11 @@
return cls.InitFromObj(vec3)
@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, vec3):
x = Vec3T()
x._UnPack(vec3)
@@ -444,6 +469,11 @@
return cls.InitFromObj(ability)
@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, ability):
x = AbilityT()
x._UnPack(ability)
@@ -522,6 +552,11 @@
return cls.InitFromObj(structOfStructs)
@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, structOfStructs):
x = StructOfStructsT()
x._UnPack(structOfStructs)
@@ -593,6 +628,11 @@
return cls.InitFromObj(structOfStructsOfStructs)
@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, structOfStructsOfStructs):
x = StructOfStructsOfStructsT()
x._UnPack(structOfStructsOfStructs)
@@ -675,6 +715,11 @@
return cls.InitFromObj(stat)
@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, stat):
x = StatT()
x._UnPack(stat)
@@ -748,6 +793,11 @@
return cls.InitFromObj(referrable)
@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, referrable):
x = ReferrableT()
x._UnPack(referrable)
@@ -1565,7 +1615,63 @@
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return 2
-def MonsterStart(builder): builder.StartObject(54)
+ # Monster
+ def NanDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(112))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('nan')
+
+ # Monster
+ def InfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(114))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def PositiveInfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(116))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def InfinityDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(118))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def PositiveInfinityDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(120))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('inf')
+
+ # Monster
+ def NegativeInfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(122))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('-inf')
+
+ # Monster
+ def NegativeInfinityDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(124))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
+ return float('-inf')
+
+ # Monster
+ def DoubleInfDefault(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(126))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
+ return float('inf')
+
+def MonsterStart(builder): builder.StartObject(62)
def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0)
def MonsterAddMana(builder, mana): builder.PrependInt16Slot(1, mana, 150)
def MonsterAddHp(builder, hp): builder.PrependInt16Slot(2, hp, 100)
@@ -1649,6 +1755,14 @@
def MonsterAddNativeInline(builder, nativeInline): builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0)
def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0)
def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2)
+def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan'))
+def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf'))
+def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf'))
+def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf'))
+def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf'))
+def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf'))
+def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf'))
+def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf'))
def MonsterEnd(builder): return builder.EndObject()
try:
@@ -1713,6 +1827,14 @@
self.nativeInline = None # type: Optional[TestT]
self.longEnumNonEnumDefault = 0 # type: int
self.longEnumNormalDefault = 2 # type: int
+ self.nanDefault = float('nan') # type: float
+ self.infDefault = float('inf') # type: float
+ self.positiveInfDefault = float('inf') # type: float
+ self.infinityDefault = float('inf') # type: float
+ self.positiveInfinityDefault = float('inf') # type: float
+ self.negativeInfDefault = float('-inf') # type: float
+ self.negativeInfinityDefault = float('-inf') # type: float
+ self.doubleInfDefault = float('inf') # type: float
@classmethod
def InitFromBuf(cls, buf, pos):
@@ -1721,6 +1843,11 @@
return cls.InitFromObj(monster)
@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, monster):
x = MonsterT()
x._UnPack(monster)
@@ -1909,6 +2036,14 @@
self.nativeInline = TestT.InitFromObj(monster.NativeInline())
self.longEnumNonEnumDefault = monster.LongEnumNonEnumDefault()
self.longEnumNormalDefault = monster.LongEnumNormalDefault()
+ self.nanDefault = monster.NanDefault()
+ self.infDefault = monster.InfDefault()
+ self.positiveInfDefault = monster.PositiveInfDefault()
+ self.infinityDefault = monster.InfinityDefault()
+ self.positiveInfinityDefault = monster.PositiveInfinityDefault()
+ self.negativeInfDefault = monster.NegativeInfDefault()
+ self.negativeInfinityDefault = monster.NegativeInfinityDefault()
+ self.doubleInfDefault = monster.DoubleInfDefault()
# MonsterT
def Pack(self, builder):
@@ -2162,6 +2297,14 @@
MonsterAddNativeInline(builder, nativeInline)
MonsterAddLongEnumNonEnumDefault(builder, self.longEnumNonEnumDefault)
MonsterAddLongEnumNormalDefault(builder, self.longEnumNormalDefault)
+ MonsterAddNanDefault(builder, self.nanDefault)
+ MonsterAddInfDefault(builder, self.infDefault)
+ MonsterAddPositiveInfDefault(builder, self.positiveInfDefault)
+ MonsterAddInfinityDefault(builder, self.infinityDefault)
+ MonsterAddPositiveInfinityDefault(builder, self.positiveInfinityDefault)
+ MonsterAddNegativeInfDefault(builder, self.negativeInfDefault)
+ MonsterAddNegativeInfinityDefault(builder, self.negativeInfinityDefault)
+ MonsterAddDoubleInfDefault(builder, self.doubleInfDefault)
monster = MonsterEnd(builder)
return monster
@@ -2358,6 +2501,11 @@
return cls.InitFromObj(typeAliases)
@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, typeAliases):
x = TypeAliasesT()
x._UnPack(typeAliases)
diff --git a/tests/monster_test_my_game.example_generated.dart b/tests/monster_test_my_game.example_generated.dart
index 174fe1d..a9e9e81 100644
--- a/tests/monster_test_my_game.example_generated.dart
+++ b/tests/monster_test_my_game.example_generated.dart
@@ -1258,10 +1258,18 @@
Test? get nativeInline => Test.reader.vTableGetNullable(_bc, _bcOffset, 106);
LongEnum get longEnumNonEnumDefault => LongEnum.fromValue(const fb.Uint64Reader().vTableGet(_bc, _bcOffset, 108, 0));
LongEnum get longEnumNormalDefault => LongEnum.fromValue(const fb.Uint64Reader().vTableGet(_bc, _bcOffset, 110, 2));
+ double get nanDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 112, double.nan);
+ double get infDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 114, double.infinity);
+ double get positiveInfDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 116, double.infinity);
+ double get infinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 118, double.infinity);
+ double get positiveInfinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 120, double.infinity);
+ double get negativeInfDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 122, double.negativeInfinity);
+ double get negativeInfinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 124, double.negativeInfinity);
+ double get doubleInfDefault => const fb.Float64Reader().vTableGet(_bc, _bcOffset, 126, double.infinity);
@override
String toString() {
- return 'Monster{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}}';
+ return 'Monster{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}';
}
MonsterT unpack() => MonsterT(
@@ -1317,7 +1325,15 @@
scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList(),
nativeInline: nativeInline?.unpack(),
longEnumNonEnumDefault: longEnumNonEnumDefault,
- longEnumNormalDefault: longEnumNormalDefault);
+ longEnumNormalDefault: longEnumNormalDefault,
+ nanDefault: nanDefault,
+ infDefault: infDefault,
+ positiveInfDefault: positiveInfDefault,
+ infinityDefault: infinityDefault,
+ positiveInfinityDefault: positiveInfinityDefault,
+ negativeInfDefault: negativeInfDefault,
+ negativeInfinityDefault: negativeInfinityDefault,
+ doubleInfDefault: doubleInfDefault);
static int pack(fb.Builder fbBuilder, MonsterT? object) {
if (object == null) return 0;
@@ -1382,6 +1398,14 @@
TestT? nativeInline;
LongEnum longEnumNonEnumDefault;
LongEnum longEnumNormalDefault;
+ double nanDefault;
+ double infDefault;
+ double positiveInfDefault;
+ double infinityDefault;
+ double positiveInfinityDefault;
+ double negativeInfDefault;
+ double negativeInfinityDefault;
+ double doubleInfDefault;
MonsterT({
this.pos,
@@ -1436,7 +1460,15 @@
this.scalarKeySortedTables,
this.nativeInline,
this.longEnumNonEnumDefault = const LongEnum._(0),
- this.longEnumNormalDefault = LongEnum.LongOne});
+ this.longEnumNormalDefault = LongEnum.LongOne,
+ this.nanDefault = double.nan,
+ this.infDefault = double.infinity,
+ this.positiveInfDefault = double.infinity,
+ this.infinityDefault = double.infinity,
+ this.positiveInfinityDefault = double.infinity,
+ this.negativeInfDefault = double.negativeInfinity,
+ this.negativeInfinityDefault = double.negativeInfinity,
+ this.doubleInfDefault = double.infinity});
@override
int pack(fb.Builder fbBuilder) {
@@ -1497,7 +1529,7 @@
: fbBuilder.writeListUint8(testrequirednestedflatbuffer!);
final int? scalarKeySortedTablesOffset = scalarKeySortedTables == null ? null
: fbBuilder.writeList(scalarKeySortedTables!.map((b) => b.pack(fbBuilder)).toList());
- fbBuilder.startTable(54);
+ fbBuilder.startTable(62);
if (pos != null) {
fbBuilder.addStruct(0, pos!.pack(fbBuilder));
}
@@ -1555,12 +1587,20 @@
}
fbBuilder.addUint64(52, longEnumNonEnumDefault.value);
fbBuilder.addUint64(53, longEnumNormalDefault.value);
+ fbBuilder.addFloat32(54, nanDefault);
+ fbBuilder.addFloat32(55, infDefault);
+ fbBuilder.addFloat32(56, positiveInfDefault);
+ fbBuilder.addFloat32(57, infinityDefault);
+ fbBuilder.addFloat32(58, positiveInfinityDefault);
+ fbBuilder.addFloat32(59, negativeInfDefault);
+ fbBuilder.addFloat32(60, negativeInfinityDefault);
+ fbBuilder.addFloat64(61, doubleInfDefault);
return fbBuilder.endTable();
}
@override
String toString() {
- return 'MonsterT{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}}';
+ return 'MonsterT{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}';
}
}
@@ -1578,7 +1618,7 @@
final fb.Builder fbBuilder;
void begin() {
- fbBuilder.startTable(54);
+ fbBuilder.startTable(62);
}
int addPos(int offset) {
@@ -1793,6 +1833,38 @@
fbBuilder.addUint64(53, longEnumNormalDefault?.value);
return fbBuilder.offset;
}
+ int addNanDefault(double? nanDefault) {
+ fbBuilder.addFloat32(54, nanDefault);
+ return fbBuilder.offset;
+ }
+ int addInfDefault(double? infDefault) {
+ fbBuilder.addFloat32(55, infDefault);
+ return fbBuilder.offset;
+ }
+ int addPositiveInfDefault(double? positiveInfDefault) {
+ fbBuilder.addFloat32(56, positiveInfDefault);
+ return fbBuilder.offset;
+ }
+ int addInfinityDefault(double? infinityDefault) {
+ fbBuilder.addFloat32(57, infinityDefault);
+ return fbBuilder.offset;
+ }
+ int addPositiveInfinityDefault(double? positiveInfinityDefault) {
+ fbBuilder.addFloat32(58, positiveInfinityDefault);
+ return fbBuilder.offset;
+ }
+ int addNegativeInfDefault(double? negativeInfDefault) {
+ fbBuilder.addFloat32(59, negativeInfDefault);
+ return fbBuilder.offset;
+ }
+ int addNegativeInfinityDefault(double? negativeInfinityDefault) {
+ fbBuilder.addFloat32(60, negativeInfinityDefault);
+ return fbBuilder.offset;
+ }
+ int addDoubleInfDefault(double? doubleInfDefault) {
+ fbBuilder.addFloat64(61, doubleInfDefault);
+ return fbBuilder.offset;
+ }
int finish() {
return fbBuilder.endTable();
@@ -1853,6 +1925,14 @@
final TestObjectBuilder? _nativeInline;
final LongEnum? _longEnumNonEnumDefault;
final LongEnum? _longEnumNormalDefault;
+ final double? _nanDefault;
+ final double? _infDefault;
+ final double? _positiveInfDefault;
+ final double? _infinityDefault;
+ final double? _positiveInfinityDefault;
+ final double? _negativeInfDefault;
+ final double? _negativeInfinityDefault;
+ final double? _doubleInfDefault;
MonsterObjectBuilder({
Vec3ObjectBuilder? pos,
@@ -1908,6 +1988,14 @@
TestObjectBuilder? nativeInline,
LongEnum? longEnumNonEnumDefault,
LongEnum? longEnumNormalDefault,
+ double? nanDefault,
+ double? infDefault,
+ double? positiveInfDefault,
+ double? infinityDefault,
+ double? positiveInfinityDefault,
+ double? negativeInfDefault,
+ double? negativeInfinityDefault,
+ double? doubleInfDefault,
})
: _pos = pos,
_mana = mana,
@@ -1961,7 +2049,15 @@
_scalarKeySortedTables = scalarKeySortedTables,
_nativeInline = nativeInline,
_longEnumNonEnumDefault = longEnumNonEnumDefault,
- _longEnumNormalDefault = longEnumNormalDefault;
+ _longEnumNormalDefault = longEnumNormalDefault,
+ _nanDefault = nanDefault,
+ _infDefault = infDefault,
+ _positiveInfDefault = positiveInfDefault,
+ _infinityDefault = infinityDefault,
+ _positiveInfinityDefault = positiveInfinityDefault,
+ _negativeInfDefault = negativeInfDefault,
+ _negativeInfinityDefault = negativeInfinityDefault,
+ _doubleInfDefault = doubleInfDefault;
/// Finish building, and store into the [fbBuilder].
@override
@@ -2014,7 +2110,7 @@
: fbBuilder.writeListUint8(_testrequirednestedflatbuffer!);
final int? scalarKeySortedTablesOffset = _scalarKeySortedTables == null ? null
: fbBuilder.writeList(_scalarKeySortedTables!.map((b) => b.getOrCreateOffset(fbBuilder)).toList());
- fbBuilder.startTable(54);
+ fbBuilder.startTable(62);
if (_pos != null) {
fbBuilder.addStruct(0, _pos!.finish(fbBuilder));
}
@@ -2072,6 +2168,14 @@
}
fbBuilder.addUint64(52, _longEnumNonEnumDefault?.value);
fbBuilder.addUint64(53, _longEnumNormalDefault?.value);
+ fbBuilder.addFloat32(54, _nanDefault);
+ fbBuilder.addFloat32(55, _infDefault);
+ fbBuilder.addFloat32(56, _positiveInfDefault);
+ fbBuilder.addFloat32(57, _infinityDefault);
+ fbBuilder.addFloat32(58, _positiveInfinityDefault);
+ fbBuilder.addFloat32(59, _negativeInfDefault);
+ fbBuilder.addFloat32(60, _negativeInfinityDefault);
+ fbBuilder.addFloat64(61, _doubleInfDefault);
return fbBuilder.endTable();
}
diff --git a/tests/monster_test_serialize/my_game/example/ability_generated.rs b/tests/monster_test_serialize/my_game/example/ability_generated.rs
index 5c8bcf8..46d24bf 100644
--- a/tests/monster_test_serialize/my_game/example/ability_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/ability_generated.rs
@@ -30,39 +30,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Ability {}
-impl flatbuffers::SafeSliceAccess for Ability {}
impl<'a> flatbuffers::Follow<'a> for Ability {
type Inner = &'a Ability;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Ability>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Ability {
type Inner = &'a Ability;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Ability>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Ability {
type Output = Ability;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Ability as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Ability {
- type Output = Ability;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Ability as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Ability as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -106,24 +92,30 @@
}
pub fn id(&self) -> u32 {
- let mut mem = core::mem::MaybeUninit::<u32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<u32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_id(&mut self, x: u32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const u32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
}
}
@@ -139,24 +131,30 @@
key.cmp(&val)
}
pub fn distance(&self) -> u32 {
- let mut mem = core::mem::MaybeUninit::<u32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<u32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[4..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_distance(&mut self, x: u32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const u32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[4..].as_mut_ptr(),
- core::mem::size_of::<u32>(),
+ core::mem::size_of::<<u32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/monster_test_serialize/my_game/example/any_ambiguous_aliases_generated.rs b/tests/monster_test_serialize/my_game/example/any_ambiguous_aliases_generated.rs
index b278ca1..2e4a861 100644
--- a/tests/monster_test_serialize/my_game/example/any_ambiguous_aliases_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/any_ambiguous_aliases_generated.rs
@@ -74,10 +74,8 @@
impl<'a> flatbuffers::Follow<'a> for AnyAmbiguousAliases {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -85,21 +83,21 @@
impl flatbuffers::Push for AnyAmbiguousAliases {
type Output = AnyAmbiguousAliases;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for AnyAmbiguousAliases {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test_serialize/my_game/example/any_generated.rs b/tests/monster_test_serialize/my_game/example/any_generated.rs
index f67392d..e889cf5 100644
--- a/tests/monster_test_serialize/my_game/example/any_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/any_generated.rs
@@ -74,10 +74,8 @@
impl<'a> flatbuffers::Follow<'a> for Any {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -85,21 +83,21 @@
impl flatbuffers::Push for Any {
type Output = Any;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for Any {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test_serialize/my_game/example/any_unique_aliases_generated.rs b/tests/monster_test_serialize/my_game/example/any_unique_aliases_generated.rs
index 1b3d091..5e6fe2d 100644
--- a/tests/monster_test_serialize/my_game/example/any_unique_aliases_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/any_unique_aliases_generated.rs
@@ -74,10 +74,8 @@
impl<'a> flatbuffers::Follow<'a> for AnyUniqueAliases {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -85,21 +83,21 @@
impl flatbuffers::Push for AnyUniqueAliases {
type Output = AnyUniqueAliases;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for AnyUniqueAliases {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test_serialize/my_game/example/color_generated.rs b/tests/monster_test_serialize/my_game/example/color_generated.rs
index e001d43..0f98879 100644
--- a/tests/monster_test_serialize/my_game/example/color_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/color_generated.rs
@@ -40,32 +40,38 @@
impl<'a> flatbuffers::Follow<'a> for Color {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
- unsafe { Self::from_bits_unchecked(b) }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
+ Self::from_bits_unchecked(b)
}
}
impl flatbuffers::Push for Color {
type Output = Color;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.bits()); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.bits());
}
}
impl flatbuffers::EndianScalar for Color {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.bits());
- unsafe { Self::from_bits_unchecked(b) }
+ fn to_little_endian(self) -> u8 {
+ self.bits().to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.bits());
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
unsafe { Self::from_bits_unchecked(b) }
}
}
diff --git a/tests/monster_test_serialize/my_game/example/long_enum_generated.rs b/tests/monster_test_serialize/my_game/example/long_enum_generated.rs
index b29b97f..1f56c6f 100644
--- a/tests/monster_test_serialize/my_game/example/long_enum_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/long_enum_generated.rs
@@ -36,32 +36,38 @@
impl<'a> flatbuffers::Follow<'a> for LongEnum {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u64>(buf, loc)
- };
- unsafe { Self::from_bits_unchecked(b) }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u64>(buf, loc);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
+ Self::from_bits_unchecked(b)
}
}
impl flatbuffers::Push for LongEnum {
type Output = LongEnum;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u64>(dst, self.bits()); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u64>(dst, self.bits());
}
}
impl flatbuffers::EndianScalar for LongEnum {
+ type Scalar = u64;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u64::to_le(self.bits());
- unsafe { Self::from_bits_unchecked(b) }
+ fn to_little_endian(self) -> u64 {
+ self.bits().to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u64::from_le(self.bits());
+ fn from_little_endian(v: u64) -> Self {
+ let b = u64::from_le(v);
+ // Safety:
+ // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size.
+ // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0
+ // https://github.com/bitflags/bitflags/issues/262
unsafe { Self::from_bits_unchecked(b) }
}
}
diff --git a/tests/monster_test_serialize/my_game/example/monster_generated.rs b/tests/monster_test_serialize/my_game/example/monster_generated.rs
index 7aa3ec7..4c01eed 100644
--- a/tests/monster_test_serialize/my_game/example/monster_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/monster_generated.rs
@@ -22,8 +22,8 @@
impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
type Inner = Monster<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -81,13 +81,21 @@
pub const VT_NATIVE_INLINE: flatbuffers::VOffsetT = 106;
pub const VT_LONG_ENUM_NON_ENUM_DEFAULT: flatbuffers::VOffsetT = 108;
pub const VT_LONG_ENUM_NORMAL_DEFAULT: flatbuffers::VOffsetT = 110;
+ pub const VT_NAN_DEFAULT: flatbuffers::VOffsetT = 112;
+ pub const VT_INF_DEFAULT: flatbuffers::VOffsetT = 114;
+ pub const VT_POSITIVE_INF_DEFAULT: flatbuffers::VOffsetT = 116;
+ pub const VT_INFINITY_DEFAULT: flatbuffers::VOffsetT = 118;
+ pub const VT_POSITIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 120;
+ pub const VT_NEGATIVE_INF_DEFAULT: flatbuffers::VOffsetT = 122;
+ pub const VT_NEGATIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 124;
+ pub const VT_DOUBLE_INF_DEFAULT: flatbuffers::VOffsetT = 126;
pub const fn get_fully_qualified_name() -> &'static str {
"MyGame.Example.Monster"
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Monster { _tab: table }
}
#[allow(unused_mut)]
@@ -96,6 +104,7 @@
args: &'args MonsterArgs<'args>
) -> flatbuffers::WIPOffset<Monster<'bldr>> {
let mut builder = MonsterBuilder::new(_fbb);
+ builder.add_double_inf_default(args.double_inf_default);
builder.add_long_enum_normal_default(args.long_enum_normal_default);
builder.add_long_enum_non_enum_default(args.long_enum_non_enum_default);
builder.add_non_owning_reference(args.non_owning_reference);
@@ -105,6 +114,13 @@
builder.add_testhashs64_fnv1a(args.testhashs64_fnv1a);
builder.add_testhashu64_fnv1(args.testhashu64_fnv1);
builder.add_testhashs64_fnv1(args.testhashs64_fnv1);
+ builder.add_negative_infinity_default(args.negative_infinity_default);
+ builder.add_negative_inf_default(args.negative_inf_default);
+ builder.add_positive_infinity_default(args.positive_infinity_default);
+ builder.add_infinity_default(args.infinity_default);
+ builder.add_positive_inf_default(args.positive_inf_default);
+ builder.add_inf_default(args.inf_default);
+ builder.add_nan_default(args.nan_default);
if let Some(x) = args.native_inline { builder.add_native_inline(x); }
if let Some(x) = args.scalar_key_sorted_tables { builder.add_scalar_key_sorted_tables(x); }
if let Some(x) = args.testrequirednestedflatbuffer { builder.add_testrequirednestedflatbuffer(x); }
@@ -163,7 +179,7 @@
x.to_string()
};
let inventory = self.inventory().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let color = self.color();
let test = match self.test_type() {
@@ -198,7 +214,7 @@
Box::new(x.unpack())
});
let testnestedflatbuffer = self.testnestedflatbuffer().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let testempty = self.testempty().map(|x| {
Box::new(x.unpack())
@@ -213,7 +229,7 @@
let testhashs64_fnv1a = self.testhashs64_fnv1a();
let testhashu64_fnv1a = self.testhashu64_fnv1a();
let testarrayofbools = self.testarrayofbools().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let testf = self.testf();
let testf2 = self.testf2();
@@ -225,7 +241,7 @@
x.iter().map(|t| t.unpack()).collect()
});
let flex = self.flex().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let test5 = self.test5().map(|x| {
x.iter().map(|t| t.unpack()).collect()
@@ -300,7 +316,7 @@
});
let signed_enum = self.signed_enum();
let testrequirednestedflatbuffer = self.testrequirednestedflatbuffer().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let scalar_key_sorted_tables = self.scalar_key_sorted_tables().map(|x| {
x.iter().map(|t| t.unpack()).collect()
@@ -310,6 +326,14 @@
});
let long_enum_non_enum_default = self.long_enum_non_enum_default();
let long_enum_normal_default = self.long_enum_normal_default();
+ let nan_default = self.nan_default();
+ let inf_default = self.inf_default();
+ let positive_inf_default = self.positive_inf_default();
+ let infinity_default = self.infinity_default();
+ let positive_infinity_default = self.positive_infinity_default();
+ let negative_inf_default = self.negative_inf_default();
+ let negative_infinity_default = self.negative_infinity_default();
+ let double_inf_default = self.double_inf_default();
MonsterT {
pos,
mana,
@@ -361,24 +385,44 @@
native_inline,
long_enum_non_enum_default,
long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default,
}
}
#[inline]
pub fn pos(&self) -> Option<&'a Vec3> {
- self._tab.get::<Vec3>(Monster::VT_POS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Vec3>(Monster::VT_POS, None)}
}
#[inline]
pub fn mana(&self) -> i16 {
- self._tab.get::<i16>(Monster::VT_MANA, Some(150)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(Monster::VT_MANA, Some(150)).unwrap()}
}
#[inline]
pub fn hp(&self) -> i16 {
- self._tab.get::<i16>(Monster::VT_HP, Some(100)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(Monster::VT_HP, Some(100)).unwrap()}
}
#[inline]
pub fn name(&self) -> &'a str {
- self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Monster::VT_NAME, None).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Monster::VT_NAME, None).unwrap()}
}
#[inline]
pub fn key_compare_less_than(&self, o: &Monster) -> bool {
@@ -391,220 +435,434 @@
key.cmp(val)
}
#[inline]
- pub fn inventory(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_INVENTORY, None).map(|v| v.safe_slice())
+ pub fn inventory(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_INVENTORY, None)}
}
#[inline]
pub fn color(&self) -> Color {
- self._tab.get::<Color>(Monster::VT_COLOR, Some(Color::Blue)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Color>(Monster::VT_COLOR, Some(Color::Blue)).unwrap()}
}
#[inline]
pub fn test_type(&self) -> Any {
- self._tab.get::<Any>(Monster::VT_TEST_TYPE, Some(Any::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Any>(Monster::VT_TEST_TYPE, Some(Any::NONE)).unwrap()}
}
#[inline]
pub fn test(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_TEST, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_TEST, None)}
}
#[inline]
- pub fn test4(&self) -> Option<&'a [Test]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST4, None).map(|v| v.safe_slice())
+ pub fn test4(&self) -> Option<flatbuffers::Vector<'a, Test>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST4, None)}
}
#[inline]
pub fn testarrayofstring(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING, None)}
}
/// an example documentation comment: this will end up in the generated code
/// multiline too
#[inline]
pub fn testarrayoftables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster>>>>(Monster::VT_TESTARRAYOFTABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster>>>>(Monster::VT_TESTARRAYOFTABLES, None)}
}
#[inline]
pub fn enemy(&self) -> Option<Monster<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<Monster>>(Monster::VT_ENEMY, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<Monster>>(Monster::VT_ENEMY, None)}
}
#[inline]
- pub fn testnestedflatbuffer(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
+ pub fn testnestedflatbuffer(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTNESTEDFLATBUFFER, None)}
}
pub fn testnestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
self.testnestedflatbuffer().map(|data| {
use flatbuffers::Follow;
- <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid flatbuffer in this slot
+ unsafe { <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data.bytes(), 0) }
})
}
#[inline]
pub fn testempty(&self) -> Option<Stat<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<Stat>>(Monster::VT_TESTEMPTY, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<Stat>>(Monster::VT_TESTEMPTY, None)}
}
#[inline]
pub fn testbool(&self) -> bool {
- self._tab.get::<bool>(Monster::VT_TESTBOOL, Some(false)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<bool>(Monster::VT_TESTBOOL, Some(false)).unwrap()}
}
#[inline]
pub fn testhashs32_fnv1(&self) -> i32 {
- self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu32_fnv1(&self) -> u32 {
- self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashs64_fnv1(&self) -> i64 {
- self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu64_fnv1(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1, Some(0)).unwrap()}
}
#[inline]
pub fn testhashs32_fnv1a(&self) -> i32 {
- self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1A, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu32_fnv1a(&self) -> u32 {
- self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1A, Some(0)).unwrap()}
}
#[inline]
pub fn testhashs64_fnv1a(&self) -> i64 {
- self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1A, Some(0)).unwrap()}
}
#[inline]
pub fn testhashu64_fnv1a(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1A, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1A, Some(0)).unwrap()}
}
#[inline]
- pub fn testarrayofbools(&self) -> Option<&'a [bool]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(Monster::VT_TESTARRAYOFBOOLS, None).map(|v| v.safe_slice())
+ pub fn testarrayofbools(&self) -> Option<flatbuffers::Vector<'a, bool>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(Monster::VT_TESTARRAYOFBOOLS, None)}
}
#[inline]
pub fn testf(&self) -> f32 {
- self._tab.get::<f32>(Monster::VT_TESTF, Some(3.14159)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_TESTF, Some(3.14159)).unwrap()}
}
#[inline]
pub fn testf2(&self) -> f32 {
- self._tab.get::<f32>(Monster::VT_TESTF2, Some(3.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_TESTF2, Some(3.0)).unwrap()}
}
#[inline]
pub fn testf3(&self) -> f32 {
- self._tab.get::<f32>(Monster::VT_TESTF3, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_TESTF3, Some(0.0)).unwrap()}
}
#[inline]
pub fn testarrayofstring2(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING2, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING2, None)}
}
#[inline]
- pub fn testarrayofsortedstruct(&self) -> Option<&'a [Ability]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Ability>>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, None).map(|v| v.safe_slice())
+ pub fn testarrayofsortedstruct(&self) -> Option<flatbuffers::Vector<'a, Ability>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Ability>>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, None)}
}
#[inline]
- pub fn flex(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_FLEX, None).map(|v| v.safe_slice())
+ pub fn flex(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_FLEX, None)}
}
#[inline]
- pub fn test5(&self) -> Option<&'a [Test]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST5, None).map(|v| v.safe_slice())
+ pub fn test5(&self) -> Option<flatbuffers::Vector<'a, Test>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST5, None)}
}
#[inline]
pub fn vector_of_longs(&self) -> Option<flatbuffers::Vector<'a, i64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i64>>>(Monster::VT_VECTOR_OF_LONGS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i64>>>(Monster::VT_VECTOR_OF_LONGS, None)}
}
#[inline]
pub fn vector_of_doubles(&self) -> Option<flatbuffers::Vector<'a, f64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(Monster::VT_VECTOR_OF_DOUBLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(Monster::VT_VECTOR_OF_DOUBLES, None)}
}
#[inline]
pub fn parent_namespace_test(&self) -> Option<super::InParentNamespace<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, None)}
}
#[inline]
pub fn vector_of_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_REFERRABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_REFERRABLES, None)}
}
#[inline]
pub fn single_weak_reference(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, Some(0)).unwrap()}
}
#[inline]
pub fn vector_of_weak_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, None)}
}
#[inline]
pub fn vector_of_strong_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, None)}
}
#[inline]
pub fn co_owning_reference(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_CO_OWNING_REFERENCE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_CO_OWNING_REFERENCE, Some(0)).unwrap()}
}
#[inline]
pub fn vector_of_co_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, None)}
}
#[inline]
pub fn non_owning_reference(&self) -> u64 {
- self._tab.get::<u64>(Monster::VT_NON_OWNING_REFERENCE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Monster::VT_NON_OWNING_REFERENCE, Some(0)).unwrap()}
}
#[inline]
pub fn vector_of_non_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, None)}
}
#[inline]
pub fn any_unique_type(&self) -> AnyUniqueAliases {
- self._tab.get::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, Some(AnyUniqueAliases::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, Some(AnyUniqueAliases::NONE)).unwrap()}
}
#[inline]
pub fn any_unique(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_UNIQUE, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_UNIQUE, None)}
}
#[inline]
pub fn any_ambiguous_type(&self) -> AnyAmbiguousAliases {
- self._tab.get::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, Some(AnyAmbiguousAliases::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, Some(AnyAmbiguousAliases::NONE)).unwrap()}
}
#[inline]
pub fn any_ambiguous(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_AMBIGUOUS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_AMBIGUOUS, None)}
}
#[inline]
pub fn vector_of_enums(&self) -> Option<flatbuffers::Vector<'a, Color>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Color>>>(Monster::VT_VECTOR_OF_ENUMS, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Color>>>(Monster::VT_VECTOR_OF_ENUMS, None)}
}
#[inline]
pub fn signed_enum(&self) -> Race {
- self._tab.get::<Race>(Monster::VT_SIGNED_ENUM, Some(Race::None)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Race>(Monster::VT_SIGNED_ENUM, Some(Race::None)).unwrap()}
}
#[inline]
- pub fn testrequirednestedflatbuffer(&self) -> Option<&'a [u8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
+ pub fn testrequirednestedflatbuffer(&self) -> Option<flatbuffers::Vector<'a, u8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, None)}
}
pub fn testrequirednestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
self.testrequirednestedflatbuffer().map(|data| {
use flatbuffers::Follow;
- <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid flatbuffer in this slot
+ unsafe { <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data.bytes(), 0) }
})
}
#[inline]
pub fn scalar_key_sorted_tables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat>>>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat>>>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, None)}
}
#[inline]
pub fn native_inline(&self) -> Option<&'a Test> {
- self._tab.get::<Test>(Monster::VT_NATIVE_INLINE, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Test>(Monster::VT_NATIVE_INLINE, None)}
}
#[inline]
pub fn long_enum_non_enum_default(&self) -> LongEnum {
- self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NON_ENUM_DEFAULT, Some(Default::default())).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NON_ENUM_DEFAULT, Some(Default::default())).unwrap()}
}
#[inline]
pub fn long_enum_normal_default(&self) -> LongEnum {
- self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()}
+ }
+ #[inline]
+ pub fn nan_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_NAN_DEFAULT, Some(f32::NAN)).unwrap()}
+ }
+ #[inline]
+ pub fn inf_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_INF_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn positive_inf_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_POSITIVE_INF_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn infinity_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn positive_infinity_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_POSITIVE_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn negative_inf_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_NEGATIVE_INF_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn negative_infinity_default(&self) -> f32 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()}
+ }
+ #[inline]
+ pub fn double_inf_default(&self) -> f64 {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(Monster::VT_DOUBLE_INF_DEFAULT, Some(f64::INFINITY)).unwrap()}
}
#[inline]
#[allow(non_snake_case)]
pub fn test_as_monster(&self) -> Option<Monster<'a>> {
if self.test_type() == Any::Monster {
- self.test().map(Monster::init_from_table)
+ self.test().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -614,7 +872,12 @@
#[allow(non_snake_case)]
pub fn test_as_test_simple_table_with_enum(&self) -> Option<TestSimpleTableWithEnum<'a>> {
if self.test_type() == Any::TestSimpleTableWithEnum {
- self.test().map(TestSimpleTableWithEnum::init_from_table)
+ self.test().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { TestSimpleTableWithEnum::init_from_table(t) }
+ })
} else {
None
}
@@ -624,7 +887,12 @@
#[allow(non_snake_case)]
pub fn test_as_my_game_example_2_monster(&self) -> Option<super::example_2::Monster<'a>> {
if self.test_type() == Any::MyGame_Example2_Monster {
- self.test().map(super::example_2::Monster::init_from_table)
+ self.test().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { super::example_2::Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -634,7 +902,12 @@
#[allow(non_snake_case)]
pub fn any_unique_as_m(&self) -> Option<Monster<'a>> {
if self.any_unique_type() == AnyUniqueAliases::M {
- self.any_unique().map(Monster::init_from_table)
+ self.any_unique().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -644,7 +917,12 @@
#[allow(non_snake_case)]
pub fn any_unique_as_ts(&self) -> Option<TestSimpleTableWithEnum<'a>> {
if self.any_unique_type() == AnyUniqueAliases::TS {
- self.any_unique().map(TestSimpleTableWithEnum::init_from_table)
+ self.any_unique().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { TestSimpleTableWithEnum::init_from_table(t) }
+ })
} else {
None
}
@@ -654,7 +932,12 @@
#[allow(non_snake_case)]
pub fn any_unique_as_m2(&self) -> Option<super::example_2::Monster<'a>> {
if self.any_unique_type() == AnyUniqueAliases::M2 {
- self.any_unique().map(super::example_2::Monster::init_from_table)
+ self.any_unique().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { super::example_2::Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -664,7 +947,12 @@
#[allow(non_snake_case)]
pub fn any_ambiguous_as_m1(&self) -> Option<Monster<'a>> {
if self.any_ambiguous_type() == AnyAmbiguousAliases::M1 {
- self.any_ambiguous().map(Monster::init_from_table)
+ self.any_ambiguous().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -674,7 +962,12 @@
#[allow(non_snake_case)]
pub fn any_ambiguous_as_m2(&self) -> Option<Monster<'a>> {
if self.any_ambiguous_type() == AnyAmbiguousAliases::M2 {
- self.any_ambiguous().map(Monster::init_from_table)
+ self.any_ambiguous().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -684,7 +977,12 @@
#[allow(non_snake_case)]
pub fn any_ambiguous_as_m3(&self) -> Option<Monster<'a>> {
if self.any_ambiguous_type() == AnyAmbiguousAliases::M3 {
- self.any_ambiguous().map(Monster::init_from_table)
+ self.any_ambiguous().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { Monster::init_from_table(t) }
+ })
} else {
None
}
@@ -770,6 +1068,14 @@
.visit_field::<Test>("native_inline", Self::VT_NATIVE_INLINE, false)?
.visit_field::<LongEnum>("long_enum_non_enum_default", Self::VT_LONG_ENUM_NON_ENUM_DEFAULT, false)?
.visit_field::<LongEnum>("long_enum_normal_default", Self::VT_LONG_ENUM_NORMAL_DEFAULT, false)?
+ .visit_field::<f32>("nan_default", Self::VT_NAN_DEFAULT, false)?
+ .visit_field::<f32>("inf_default", Self::VT_INF_DEFAULT, false)?
+ .visit_field::<f32>("positive_inf_default", Self::VT_POSITIVE_INF_DEFAULT, false)?
+ .visit_field::<f32>("infinity_default", Self::VT_INFINITY_DEFAULT, false)?
+ .visit_field::<f32>("positive_infinity_default", Self::VT_POSITIVE_INFINITY_DEFAULT, false)?
+ .visit_field::<f32>("negative_inf_default", Self::VT_NEGATIVE_INF_DEFAULT, false)?
+ .visit_field::<f32>("negative_infinity_default", Self::VT_NEGATIVE_INFINITY_DEFAULT, false)?
+ .visit_field::<f64>("double_inf_default", Self::VT_DOUBLE_INF_DEFAULT, false)?
.finish();
Ok(())
}
@@ -828,6 +1134,14 @@
pub native_inline: Option<&'a Test>,
pub long_enum_non_enum_default: LongEnum,
pub long_enum_normal_default: LongEnum,
+ pub nan_default: f32,
+ pub inf_default: f32,
+ pub positive_inf_default: f32,
+ pub infinity_default: f32,
+ pub positive_infinity_default: f32,
+ pub negative_inf_default: f32,
+ pub negative_infinity_default: f32,
+ pub double_inf_default: f64,
}
impl<'a> Default for MonsterArgs<'a> {
#[inline]
@@ -886,6 +1200,14 @@
native_inline: None,
long_enum_non_enum_default: Default::default(),
long_enum_normal_default: LongEnum::LongOne,
+ nan_default: f32::NAN,
+ inf_default: f32::INFINITY,
+ positive_inf_default: f32::INFINITY,
+ infinity_default: f32::INFINITY,
+ positive_infinity_default: f32::INFINITY,
+ negative_inf_default: f32::NEG_INFINITY,
+ negative_infinity_default: f32::NEG_INFINITY,
+ double_inf_default: f64::INFINITY,
}
}
}
@@ -895,7 +1217,7 @@
where
S: Serializer,
{
- let mut s = serializer.serialize_struct("Monster", 54)?;
+ let mut s = serializer.serialize_struct("Monster", 62)?;
if let Some(f) = self.pos() {
s.serialize_field("pos", &f)?;
} else {
@@ -1103,6 +1425,14 @@
}
s.serialize_field("long_enum_non_enum_default", &self.long_enum_non_enum_default())?;
s.serialize_field("long_enum_normal_default", &self.long_enum_normal_default())?;
+ s.serialize_field("nan_default", &self.nan_default())?;
+ s.serialize_field("inf_default", &self.inf_default())?;
+ s.serialize_field("positive_inf_default", &self.positive_inf_default())?;
+ s.serialize_field("infinity_default", &self.infinity_default())?;
+ s.serialize_field("positive_infinity_default", &self.positive_infinity_default())?;
+ s.serialize_field("negative_inf_default", &self.negative_inf_default())?;
+ s.serialize_field("negative_infinity_default", &self.negative_infinity_default())?;
+ s.serialize_field("double_inf_default", &self.double_inf_default())?;
s.end()
}
}
@@ -1325,6 +1655,38 @@
self.fbb_.push_slot::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, long_enum_normal_default, LongEnum::LongOne);
}
#[inline]
+ pub fn add_nan_default(&mut self, nan_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_NAN_DEFAULT, nan_default, f32::NAN);
+ }
+ #[inline]
+ pub fn add_inf_default(&mut self, inf_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_INF_DEFAULT, inf_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_positive_inf_default(&mut self, positive_inf_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_infinity_default(&mut self, infinity_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_INFINITY_DEFAULT, infinity_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_positive_infinity_default(&mut self, positive_infinity_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, f32::INFINITY);
+ }
+ #[inline]
+ pub fn add_negative_inf_default(&mut self, negative_inf_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, f32::NEG_INFINITY);
+ }
+ #[inline]
+ pub fn add_negative_infinity_default(&mut self, negative_infinity_default: f32) {
+ self.fbb_.push_slot::<f32>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, f32::NEG_INFINITY);
+ }
+ #[inline]
+ pub fn add_double_inf_default(&mut self, double_inf_default: f64) {
+ self.fbb_.push_slot::<f64>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, f64::INFINITY);
+ }
+ #[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> {
let start = _fbb.start_table();
MonsterBuilder {
@@ -1474,6 +1836,14 @@
ds.field("native_inline", &self.native_inline());
ds.field("long_enum_non_enum_default", &self.long_enum_non_enum_default());
ds.field("long_enum_normal_default", &self.long_enum_normal_default());
+ ds.field("nan_default", &self.nan_default());
+ ds.field("inf_default", &self.inf_default());
+ ds.field("positive_inf_default", &self.positive_inf_default());
+ ds.field("infinity_default", &self.infinity_default());
+ ds.field("positive_infinity_default", &self.positive_infinity_default());
+ ds.field("negative_inf_default", &self.negative_inf_default());
+ ds.field("negative_infinity_default", &self.negative_infinity_default());
+ ds.field("double_inf_default", &self.double_inf_default());
ds.finish()
}
}
@@ -1530,6 +1900,14 @@
pub native_inline: Option<TestT>,
pub long_enum_non_enum_default: LongEnum,
pub long_enum_normal_default: LongEnum,
+ pub nan_default: f32,
+ pub inf_default: f32,
+ pub positive_inf_default: f32,
+ pub infinity_default: f32,
+ pub positive_infinity_default: f32,
+ pub negative_inf_default: f32,
+ pub negative_infinity_default: f32,
+ pub double_inf_default: f64,
}
impl Default for MonsterT {
fn default() -> Self {
@@ -1584,6 +1962,14 @@
native_inline: None,
long_enum_non_enum_default: Default::default(),
long_enum_normal_default: LongEnum::LongOne,
+ nan_default: f32::NAN,
+ inf_default: f32::INFINITY,
+ positive_inf_default: f32::INFINITY,
+ infinity_default: f32::INFINITY,
+ positive_infinity_default: f32::INFINITY,
+ negative_inf_default: f32::NEG_INFINITY,
+ negative_infinity_default: f32::NEG_INFINITY,
+ double_inf_default: f64::INFINITY,
}
}
}
@@ -1610,7 +1996,7 @@
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
});
let testarrayofstring = self.testarrayofstring.as_ref().map(|x|{
- let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
+ let w: Vec<_> = x.iter().map(|s| _fbb.create_string(s)).collect();_fbb.create_vector(&w)
});
let testarrayoftables = self.testarrayoftables.as_ref().map(|x|{
let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
@@ -1640,7 +2026,7 @@
let testf2 = self.testf2;
let testf3 = self.testf3;
let testarrayofstring2 = self.testarrayofstring2.as_ref().map(|x|{
- let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
+ let w: Vec<_> = x.iter().map(|s| _fbb.create_string(s)).collect();_fbb.create_vector(&w)
});
let testarrayofsortedstruct = self.testarrayofsortedstruct.as_ref().map(|x|{
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
@@ -1696,6 +2082,14 @@
let native_inline = native_inline_tmp.as_ref();
let long_enum_non_enum_default = self.long_enum_non_enum_default;
let long_enum_normal_default = self.long_enum_normal_default;
+ let nan_default = self.nan_default;
+ let inf_default = self.inf_default;
+ let positive_inf_default = self.positive_inf_default;
+ let infinity_default = self.infinity_default;
+ let positive_infinity_default = self.positive_infinity_default;
+ let negative_inf_default = self.negative_inf_default;
+ let negative_infinity_default = self.negative_infinity_default;
+ let double_inf_default = self.double_inf_default;
Monster::create(_fbb, &MonsterArgs{
pos,
mana,
@@ -1750,22 +2144,18 @@
native_inline,
long_enum_non_enum_default,
long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default,
})
}
}
#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
- unsafe { flatbuffers::root_unchecked::<Monster<'a>>(buf) }
-}
-
-#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_size_prefixed_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
- unsafe { flatbuffers::size_prefixed_root_unchecked::<Monster<'a>>(buf) }
-}
-
-#[inline]
/// Verifies that a buffer of bytes contains a `Monster`
/// and returns it.
/// Note that verification is still experimental and may not
diff --git a/tests/monster_test_serialize/my_game/example/race_generated.rs b/tests/monster_test_serialize/my_game/example/race_generated.rs
index a1a6749..fe57ce0 100644
--- a/tests/monster_test_serialize/my_game/example/race_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/race_generated.rs
@@ -74,10 +74,8 @@
impl<'a> flatbuffers::Follow<'a> for Race {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
Self(b)
}
}
@@ -85,21 +83,21 @@
impl flatbuffers::Push for Race {
type Output = Race;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for Race {
+ type Scalar = i8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i8::from_le(self.0);
+ fn from_little_endian(v: i8) -> Self {
+ let b = i8::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test_serialize/my_game/example/referrable_generated.rs b/tests/monster_test_serialize/my_game/example/referrable_generated.rs
index 9992293..d3f65ad 100644
--- a/tests/monster_test_serialize/my_game/example/referrable_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/referrable_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for Referrable<'a> {
type Inner = Referrable<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -34,7 +34,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Referrable { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn id(&self) -> u64 {
- self._tab.get::<u64>(Referrable::VT_ID, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(Referrable::VT_ID, Some(0)).unwrap()}
}
#[inline]
pub fn key_compare_less_than(&self, o: &Referrable) -> bool {
diff --git a/tests/monster_test_serialize/my_game/example/stat_generated.rs b/tests/monster_test_serialize/my_game/example/stat_generated.rs
index fbd7ce8..856d9b8 100644
--- a/tests/monster_test_serialize/my_game/example/stat_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/stat_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for Stat<'a> {
type Inner = Stat<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -36,7 +36,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Stat { _tab: table }
}
#[allow(unused_mut)]
@@ -66,15 +66,24 @@
#[inline]
pub fn id(&self) -> Option<&'a str> {
- self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Stat::VT_ID, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Stat::VT_ID, None)}
}
#[inline]
pub fn val(&self) -> i64 {
- self._tab.get::<i64>(Stat::VT_VAL, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(Stat::VT_VAL, Some(0)).unwrap()}
}
#[inline]
pub fn count(&self) -> u16 {
- self._tab.get::<u16>(Stat::VT_COUNT, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(Stat::VT_COUNT, Some(0)).unwrap()}
}
#[inline]
pub fn key_compare_less_than(&self, o: &Stat) -> bool {
diff --git a/tests/monster_test_serialize/my_game/example/struct_of_structs_generated.rs b/tests/monster_test_serialize/my_game/example/struct_of_structs_generated.rs
index 0046447..669a6c8 100644
--- a/tests/monster_test_serialize/my_game/example/struct_of_structs_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/struct_of_structs_generated.rs
@@ -31,39 +31,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for StructOfStructs {}
-impl flatbuffers::SafeSliceAccess for StructOfStructs {}
impl<'a> flatbuffers::Follow<'a> for StructOfStructs {
type Inner = &'a StructOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a StructOfStructs>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a StructOfStructs {
type Inner = &'a StructOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<StructOfStructs>(buf, loc)
}
}
impl<'b> flatbuffers::Push for StructOfStructs {
type Output = StructOfStructs;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const StructOfStructs as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b StructOfStructs {
- type Output = StructOfStructs;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const StructOfStructs as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const StructOfStructs as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -110,6 +96,9 @@
}
pub fn a(&self) -> &Ability {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[0..].as_ptr() as *const Ability) }
}
@@ -119,6 +108,9 @@
}
pub fn b(&self) -> &Test {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[8..].as_ptr() as *const Test) }
}
@@ -128,6 +120,9 @@
}
pub fn c(&self) -> &Ability {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[12..].as_ptr() as *const Ability) }
}
diff --git a/tests/monster_test_serialize/my_game/example/struct_of_structs_of_structs_generated.rs b/tests/monster_test_serialize/my_game/example/struct_of_structs_of_structs_generated.rs
index 234eb91..2cb1b5e 100644
--- a/tests/monster_test_serialize/my_game/example/struct_of_structs_of_structs_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/struct_of_structs_of_structs_generated.rs
@@ -29,39 +29,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for StructOfStructsOfStructs {}
-impl flatbuffers::SafeSliceAccess for StructOfStructsOfStructs {}
impl<'a> flatbuffers::Follow<'a> for StructOfStructsOfStructs {
type Inner = &'a StructOfStructsOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a StructOfStructsOfStructs>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a StructOfStructsOfStructs {
type Inner = &'a StructOfStructsOfStructs;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<StructOfStructsOfStructs>(buf, loc)
}
}
impl<'b> flatbuffers::Push for StructOfStructsOfStructs {
type Output = StructOfStructsOfStructs;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const StructOfStructsOfStructs as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b StructOfStructsOfStructs {
- type Output = StructOfStructsOfStructs;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const StructOfStructsOfStructs as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const StructOfStructsOfStructs as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -102,6 +88,9 @@
}
pub fn a(&self) -> &StructOfStructs {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[0..].as_ptr() as *const StructOfStructs) }
}
diff --git a/tests/monster_test_serialize/my_game/example/test_generated.rs b/tests/monster_test_serialize/my_game/example/test_generated.rs
index 472bff9..835a905 100644
--- a/tests/monster_test_serialize/my_game/example/test_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/test_generated.rs
@@ -30,39 +30,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Test {}
-impl flatbuffers::SafeSliceAccess for Test {}
impl<'a> flatbuffers::Follow<'a> for Test {
type Inner = &'a Test;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Test>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Test {
type Inner = &'a Test;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Test>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Test {
type Output = Test;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Test as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Test {
- type Output = Test;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Test as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Test as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -106,47 +92,59 @@
}
pub fn a(&self) -> i16 {
- let mut mem = core::mem::MaybeUninit::<i16>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i16 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i16>(),
+ core::mem::size_of::<<i16 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i16) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i16 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i16>(),
+ core::mem::size_of::<<i16 as EndianScalar>::Scalar>(),
);
}
}
pub fn b(&self) -> i8 {
- let mut mem = core::mem::MaybeUninit::<i8>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i8 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[2..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i8>(),
+ core::mem::size_of::<<i8 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_b(&mut self, x: i8) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i8 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[2..].as_mut_ptr(),
- core::mem::size_of::<i8>(),
+ core::mem::size_of::<<i8 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs b/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs
index 8a7b627..65f1598 100644
--- a/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for TestSimpleTableWithEnum<'a> {
type Inner = TestSimpleTableWithEnum<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -34,7 +34,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TestSimpleTableWithEnum { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn color(&self) -> Color {
- self._tab.get::<Color>(TestSimpleTableWithEnum::VT_COLOR, Some(Color::Green)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<Color>(TestSimpleTableWithEnum::VT_COLOR, Some(Color::Green)).unwrap()}
}
}
diff --git a/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs b/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs
index f6f7bb7..8cfa4ce 100644
--- a/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for TypeAliases<'a> {
type Inner = TypeAliases<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -45,7 +45,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TypeAliases { _tab: table }
}
#[allow(unused_mut)]
@@ -81,7 +81,7 @@
let f32_ = self.f32_();
let f64_ = self.f64_();
let v8 = self.v8().map(|x| {
- x.to_vec()
+ x.into_iter().collect()
});
let vf64 = self.vf64().map(|x| {
x.into_iter().collect()
@@ -104,51 +104,87 @@
#[inline]
pub fn i8_(&self) -> i8 {
- self._tab.get::<i8>(TypeAliases::VT_I8_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i8>(TypeAliases::VT_I8_, Some(0)).unwrap()}
}
#[inline]
pub fn u8_(&self) -> u8 {
- self._tab.get::<u8>(TypeAliases::VT_U8_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u8>(TypeAliases::VT_U8_, Some(0)).unwrap()}
}
#[inline]
pub fn i16_(&self) -> i16 {
- self._tab.get::<i16>(TypeAliases::VT_I16_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(TypeAliases::VT_I16_, Some(0)).unwrap()}
}
#[inline]
pub fn u16_(&self) -> u16 {
- self._tab.get::<u16>(TypeAliases::VT_U16_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(TypeAliases::VT_U16_, Some(0)).unwrap()}
}
#[inline]
pub fn i32_(&self) -> i32 {
- self._tab.get::<i32>(TypeAliases::VT_I32_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(TypeAliases::VT_I32_, Some(0)).unwrap()}
}
#[inline]
pub fn u32_(&self) -> u32 {
- self._tab.get::<u32>(TypeAliases::VT_U32_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(TypeAliases::VT_U32_, Some(0)).unwrap()}
}
#[inline]
pub fn i64_(&self) -> i64 {
- self._tab.get::<i64>(TypeAliases::VT_I64_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(TypeAliases::VT_I64_, Some(0)).unwrap()}
}
#[inline]
pub fn u64_(&self) -> u64 {
- self._tab.get::<u64>(TypeAliases::VT_U64_, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(TypeAliases::VT_U64_, Some(0)).unwrap()}
}
#[inline]
pub fn f32_(&self) -> f32 {
- self._tab.get::<f32>(TypeAliases::VT_F32_, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(TypeAliases::VT_F32_, Some(0.0)).unwrap()}
}
#[inline]
pub fn f64_(&self) -> f64 {
- self._tab.get::<f64>(TypeAliases::VT_F64_, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(TypeAliases::VT_F64_, Some(0.0)).unwrap()}
}
#[inline]
- pub fn v8(&self) -> Option<&'a [i8]> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i8>>>(TypeAliases::VT_V8, None).map(|v| v.safe_slice())
+ pub fn v8(&self) -> Option<flatbuffers::Vector<'a, i8>> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i8>>>(TypeAliases::VT_V8, None)}
}
#[inline]
pub fn vf64(&self) -> Option<flatbuffers::Vector<'a, f64>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(TypeAliases::VT_VF64, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(TypeAliases::VT_VF64, None)}
}
}
diff --git a/tests/monster_test_serialize/my_game/example/vec_3_generated.rs b/tests/monster_test_serialize/my_game/example/vec_3_generated.rs
index ebbe94c..c080dd7 100644
--- a/tests/monster_test_serialize/my_game/example/vec_3_generated.rs
+++ b/tests/monster_test_serialize/my_game/example/vec_3_generated.rs
@@ -34,39 +34,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Vec3 {}
-impl flatbuffers::SafeSliceAccess for Vec3 {}
impl<'a> flatbuffers::Follow<'a> for Vec3 {
type Inner = &'a Vec3;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Vec3>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Vec3 {
type Inner = &'a Vec3;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Vec3>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Vec3 {
type Output = Vec3;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Vec3 as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Vec3 {
- type Output = Vec3;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Vec3 as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Vec3 as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -122,121 +108,154 @@
}
pub fn x(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_x(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn y(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[4..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_y(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[4..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn z(&self) -> f32 {
- let mut mem = core::mem::MaybeUninit::<f32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[8..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_z(&mut self, x: f32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[8..].as_mut_ptr(),
- core::mem::size_of::<f32>(),
+ core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
);
}
}
pub fn test1(&self) -> f64 {
- let mut mem = core::mem::MaybeUninit::<f64>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<f64 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[16..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<f64>(),
+ core::mem::size_of::<<f64 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_test1(&mut self, x: f64) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const f64 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[16..].as_mut_ptr(),
- core::mem::size_of::<f64>(),
+ core::mem::size_of::<<f64 as EndianScalar>::Scalar>(),
);
}
}
pub fn test2(&self) -> Color {
- let mut mem = core::mem::MaybeUninit::<Color>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<Color as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[24..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<Color>(),
+ core::mem::size_of::<<Color as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_test2(&mut self, x: Color) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const Color as *const u8,
+ &x_le as *const _ as *const u8,
self.0[24..].as_mut_ptr(),
- core::mem::size_of::<Color>(),
+ core::mem::size_of::<<Color as EndianScalar>::Scalar>(),
);
}
}
pub fn test3(&self) -> &Test {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid struct in this slot
unsafe { &*(self.0[26..].as_ptr() as *const Test) }
}
diff --git a/tests/monster_test_serialize/my_game/example_2/monster_generated.rs b/tests/monster_test_serialize/my_game/example_2/monster_generated.rs
index 9422b57..8e1ce3a 100644
--- a/tests/monster_test_serialize/my_game/example_2/monster_generated.rs
+++ b/tests/monster_test_serialize/my_game/example_2/monster_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
type Inner = Monster<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -33,7 +33,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Monster { _tab: table }
}
#[allow(unused_mut)]
diff --git a/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs b/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs
index 71ceaa0..7fbc0de 100644
--- a/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs
+++ b/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for InParentNamespace<'a> {
type Inner = InParentNamespace<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -33,7 +33,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
InParentNamespace { _tab: table }
}
#[allow(unused_mut)]
diff --git a/tests/monster_test_serialize/my_game/other_name_space/from_include_generated.rs b/tests/monster_test_serialize/my_game/other_name_space/from_include_generated.rs
index de5e5e2..1536644 100644
--- a/tests/monster_test_serialize/my_game/other_name_space/from_include_generated.rs
+++ b/tests/monster_test_serialize/my_game/other_name_space/from_include_generated.rs
@@ -62,10 +62,8 @@
impl<'a> flatbuffers::Follow<'a> for FromInclude {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i64>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i64>(buf, loc);
Self(b)
}
}
@@ -73,21 +71,21 @@
impl flatbuffers::Push for FromInclude {
type Output = FromInclude;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i64>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i64>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for FromInclude {
+ type Scalar = i64;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i64::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i64 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i64::from_le(self.0);
+ fn from_little_endian(v: i64) -> Self {
+ let b = i64::from_le(v);
Self(b)
}
}
diff --git a/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs b/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs
index e593299..27f9eb6 100644
--- a/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs
+++ b/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for TableB<'a> {
type Inner = TableB<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -34,7 +34,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableB { _tab: table }
}
#[allow(unused_mut)]
@@ -58,7 +58,10 @@
#[inline]
pub fn a(&self) -> Option<super::super::TableA<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::super::TableA>>(TableB::VT_A, None)}
}
}
diff --git a/tests/monster_test_serialize/my_game/other_name_space/unused_generated.rs b/tests/monster_test_serialize/my_game/other_name_space/unused_generated.rs
index 2991781..b676318 100644
--- a/tests/monster_test_serialize/my_game/other_name_space/unused_generated.rs
+++ b/tests/monster_test_serialize/my_game/other_name_space/unused_generated.rs
@@ -29,39 +29,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Unused {}
-impl flatbuffers::SafeSliceAccess for Unused {}
impl<'a> flatbuffers::Follow<'a> for Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Unused>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Unused {
type Inner = &'a Unused;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Unused>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Unused {
type Output = Unused;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Unused {
- type Output = Unused;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Unused as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Unused as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -102,24 +88,30 @@
}
pub fn a(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/monster_test_serialize/table_a_generated.rs b/tests/monster_test_serialize/table_a_generated.rs
index c4bbd69..36e7390 100644
--- a/tests/monster_test_serialize/table_a_generated.rs
+++ b/tests/monster_test_serialize/table_a_generated.rs
@@ -21,8 +21,8 @@
impl<'a> flatbuffers::Follow<'a> for TableA<'a> {
type Inner = TableA<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -34,7 +34,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableA { _tab: table }
}
#[allow(unused_mut)]
@@ -58,7 +58,10 @@
#[inline]
pub fn b(&self) -> Option<my_game::other_name_space::TableB<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<my_game::other_name_space::TableB>>(TableA::VT_B, None)}
}
}
diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp
index deab77b..ce5acf8 100644
--- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp
+++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp
@@ -10,9 +10,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
@@ -1309,6 +1309,14 @@
MyGame::Example::Test native_inline{};
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0);
MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne;
+ float nan_default = std::numeric_limits<float>::quiet_NaN();
+ float inf_default = std::numeric_limits<float>::infinity();
+ float positive_inf_default = std::numeric_limits<float>::infinity();
+ float infinity_default = std::numeric_limits<float>::infinity();
+ float positive_infinity_default = std::numeric_limits<float>::infinity();
+ float negative_inf_default = -std::numeric_limits<float>::infinity();
+ float negative_infinity_default = -std::numeric_limits<float>::infinity();
+ double double_inf_default = std::numeric_limits<double>::infinity();
MonsterT() = default;
MonsterT(const MonsterT &o);
MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default;
@@ -1375,7 +1383,15 @@
VT_SCALAR_KEY_SORTED_TABLES = 104,
VT_NATIVE_INLINE = 106,
VT_LONG_ENUM_NON_ENUM_DEFAULT = 108,
- VT_LONG_ENUM_NORMAL_DEFAULT = 110
+ VT_LONG_ENUM_NORMAL_DEFAULT = 110,
+ VT_NAN_DEFAULT = 112,
+ VT_INF_DEFAULT = 114,
+ VT_POSITIVE_INF_DEFAULT = 116,
+ VT_INFINITY_DEFAULT = 118,
+ VT_POSITIVE_INFINITY_DEFAULT = 120,
+ VT_NEGATIVE_INF_DEFAULT = 122,
+ VT_NEGATIVE_INFINITY_DEFAULT = 124,
+ VT_DOUBLE_INF_DEFAULT = 126
};
const MyGame::Example::Vec3 *pos() const {
return GetStruct<const MyGame::Example::Vec3 *>(VT_POS);
@@ -1732,6 +1748,54 @@
bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast<MyGame::Example::LongEnum>(2ULL)) {
return SetField<uint64_t>(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(_long_enum_normal_default), 2ULL);
}
+ float nan_default() const {
+ return GetField<float>(VT_NAN_DEFAULT, std::numeric_limits<float>::quiet_NaN());
+ }
+ bool mutate_nan_default(float _nan_default = std::numeric_limits<float>::quiet_NaN()) {
+ return SetField<float>(VT_NAN_DEFAULT, _nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ float inf_default() const {
+ return GetField<float>(VT_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_inf_default(float _inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INF_DEFAULT, _inf_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_inf_default() const {
+ return GetField<float>(VT_POSITIVE_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ float infinity_default() const {
+ return GetField<float>(VT_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_infinity_default(float _infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_infinity_default() const {
+ return GetField<float>(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float negative_inf_default() const {
+ return GetField<float>(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ float negative_infinity_default() const {
+ return GetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ double double_inf_default() const {
+ return GetField<double>(VT_DOUBLE_INF_DEFAULT, std::numeric_limits<double>::infinity());
+ }
+ bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits<double>::infinity()) {
+ return SetField<double>(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits<double>::infinity());
+ }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<MyGame::Example::Vec3>(verifier, VT_POS, 8) &&
@@ -1823,6 +1887,14 @@
VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
+ VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
verifier.EndTable();
}
MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
@@ -2017,6 +2089,30 @@
void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) {
fbb_.AddElement<uint64_t>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(long_enum_normal_default), 2ULL);
}
+ void add_nan_default(float nan_default) {
+ fbb_.AddElement<float>(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ void add_inf_default(float inf_default) {
+ fbb_.AddElement<float>(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_inf_default(float positive_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_infinity_default(float infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_infinity_default(float positive_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_negative_inf_default(float negative_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_negative_infinity_default(float negative_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_double_inf_default(double double_inf_default) {
+ fbb_.AddElement<double>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits<double>::infinity());
+ }
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
@@ -2083,8 +2179,17 @@
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<MyGame::Example::Stat>>> scalar_key_sorted_tables = 0,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
MonsterBuilder builder_(_fbb);
+ builder_.add_double_inf_default(double_inf_default);
builder_.add_long_enum_normal_default(long_enum_normal_default);
builder_.add_long_enum_non_enum_default(long_enum_non_enum_default);
builder_.add_non_owning_reference(non_owning_reference);
@@ -2094,6 +2199,13 @@
builder_.add_testhashs64_fnv1a(testhashs64_fnv1a);
builder_.add_testhashu64_fnv1(testhashu64_fnv1);
builder_.add_testhashs64_fnv1(testhashs64_fnv1);
+ builder_.add_negative_infinity_default(negative_infinity_default);
+ builder_.add_negative_inf_default(negative_inf_default);
+ builder_.add_positive_infinity_default(positive_infinity_default);
+ builder_.add_infinity_default(infinity_default);
+ builder_.add_positive_inf_default(positive_inf_default);
+ builder_.add_inf_default(inf_default);
+ builder_.add_nan_default(nan_default);
builder_.add_native_inline(native_inline);
builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables);
builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer);
@@ -2195,7 +2307,15 @@
std::vector<flatbuffers::Offset<MyGame::Example::Stat>> *scalar_key_sorted_tables = nullptr,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
auto name__ = name ? _fbb.CreateString(name) : 0;
auto inventory__ = inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0;
auto test4__ = test4 ? _fbb.CreateVectorOfStructs<MyGame::Example::Test>(*test4) : 0;
@@ -2271,7 +2391,15 @@
scalar_key_sorted_tables__,
native_inline,
long_enum_non_enum_default,
- long_enum_normal_default);
+ long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default);
}
flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
@@ -2767,7 +2895,15 @@
(lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr<MyGame::Example::StatT> const &a, flatbuffers::unique_ptr<MyGame::Example::StatT> const &b) { return (a == b) || (a && b && *a == *b); })) &&
(lhs.native_inline == rhs.native_inline) &&
(lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) &&
- (lhs.long_enum_normal_default == rhs.long_enum_normal_default);
+ (lhs.long_enum_normal_default == rhs.long_enum_normal_default) &&
+ (lhs.nan_default == rhs.nan_default) &&
+ (lhs.inf_default == rhs.inf_default) &&
+ (lhs.positive_inf_default == rhs.positive_inf_default) &&
+ (lhs.infinity_default == rhs.infinity_default) &&
+ (lhs.positive_infinity_default == rhs.positive_infinity_default) &&
+ (lhs.negative_inf_default == rhs.negative_inf_default) &&
+ (lhs.negative_infinity_default == rhs.negative_infinity_default) &&
+ (lhs.double_inf_default == rhs.double_inf_default);
}
inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) {
@@ -2820,7 +2956,15 @@
testrequirednestedflatbuffer(o.testrequirednestedflatbuffer),
native_inline(o.native_inline),
long_enum_non_enum_default(o.long_enum_non_enum_default),
- long_enum_normal_default(o.long_enum_normal_default) {
+ long_enum_normal_default(o.long_enum_normal_default),
+ nan_default(o.nan_default),
+ inf_default(o.inf_default),
+ positive_inf_default(o.positive_inf_default),
+ infinity_default(o.infinity_default),
+ positive_infinity_default(o.positive_infinity_default),
+ negative_inf_default(o.negative_inf_default),
+ negative_infinity_default(o.negative_infinity_default),
+ double_inf_default(o.double_inf_default) {
testarrayoftables.reserve(o.testarrayoftables.size());
for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); }
vector_of_referrables.reserve(o.vector_of_referrables.size());
@@ -2884,6 +3028,14 @@
std::swap(native_inline, o.native_inline);
std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default);
std::swap(long_enum_normal_default, o.long_enum_normal_default);
+ std::swap(nan_default, o.nan_default);
+ std::swap(inf_default, o.inf_default);
+ std::swap(positive_inf_default, o.positive_inf_default);
+ std::swap(infinity_default, o.infinity_default);
+ std::swap(positive_infinity_default, o.positive_infinity_default);
+ std::swap(negative_inf_default, o.negative_inf_default);
+ std::swap(negative_infinity_default, o.negative_infinity_default);
+ std::swap(double_inf_default, o.double_inf_default);
return *this;
}
@@ -2949,6 +3101,14 @@
{ auto _e = native_inline(); if (_e) _o->native_inline = *_e; }
{ auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; }
{ auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; }
+ { auto _e = nan_default(); _o->nan_default = _e; }
+ { auto _e = inf_default(); _o->inf_default = _e; }
+ { auto _e = positive_inf_default(); _o->positive_inf_default = _e; }
+ { auto _e = infinity_default(); _o->infinity_default = _e; }
+ { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; }
+ { auto _e = negative_inf_default(); _o->negative_inf_default = _e; }
+ { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; }
+ { auto _e = double_inf_default(); _o->double_inf_default = _e; }
}
inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
@@ -3012,6 +3172,14 @@
auto _native_inline = &_o->native_inline;
auto _long_enum_non_enum_default = _o->long_enum_non_enum_default;
auto _long_enum_normal_default = _o->long_enum_normal_default;
+ auto _nan_default = _o->nan_default;
+ auto _inf_default = _o->inf_default;
+ auto _positive_inf_default = _o->positive_inf_default;
+ auto _infinity_default = _o->infinity_default;
+ auto _positive_infinity_default = _o->positive_infinity_default;
+ auto _negative_inf_default = _o->negative_inf_default;
+ auto _negative_infinity_default = _o->negative_infinity_default;
+ auto _double_inf_default = _o->double_inf_default;
return MyGame::Example::CreateMonster(
_fbb,
_pos,
@@ -3066,7 +3234,15 @@
_scalar_key_sorted_tables,
_native_inline,
_long_enum_non_enum_default,
- _long_enum_normal_default);
+ _long_enum_normal_default,
+ _nan_default,
+ _inf_default,
+ _positive_inf_default,
+ _infinity_default,
+ _positive_infinity_default,
+ _negative_inf_default,
+ _negative_infinity_default,
+ _double_inf_default);
}
@@ -3846,7 +4022,15 @@
{ flatbuffers::ET_SEQUENCE, 1, 5 },
{ flatbuffers::ET_SEQUENCE, 0, 3 },
{ flatbuffers::ET_ULONG, 0, 12 },
- { flatbuffers::ET_ULONG, 0, 12 }
+ { flatbuffers::ET_ULONG, 0, 12 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_DOUBLE, 0, -1 }
};
static const flatbuffers::TypeFunction type_refs[] = {
MyGame::Example::Vec3TypeTable,
@@ -3917,10 +4101,18 @@
"scalar_key_sorted_tables",
"native_inline",
"long_enum_non_enum_default",
- "long_enum_normal_default"
+ "long_enum_normal_default",
+ "nan_default",
+ "inf_default",
+ "positive_inf_default",
+ "infinity_default",
+ "positive_infinity_default",
+ "negative_inf_default",
+ "negative_infinity_default",
+ "double_inf_default"
};
static const flatbuffers::TypeTable tt = {
- flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names
+ flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names
};
return &tt;
}
diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h
index deab77b..ce5acf8 100644
--- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h
+++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h
@@ -10,9 +10,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
@@ -1309,6 +1309,14 @@
MyGame::Example::Test native_inline{};
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0);
MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne;
+ float nan_default = std::numeric_limits<float>::quiet_NaN();
+ float inf_default = std::numeric_limits<float>::infinity();
+ float positive_inf_default = std::numeric_limits<float>::infinity();
+ float infinity_default = std::numeric_limits<float>::infinity();
+ float positive_infinity_default = std::numeric_limits<float>::infinity();
+ float negative_inf_default = -std::numeric_limits<float>::infinity();
+ float negative_infinity_default = -std::numeric_limits<float>::infinity();
+ double double_inf_default = std::numeric_limits<double>::infinity();
MonsterT() = default;
MonsterT(const MonsterT &o);
MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default;
@@ -1375,7 +1383,15 @@
VT_SCALAR_KEY_SORTED_TABLES = 104,
VT_NATIVE_INLINE = 106,
VT_LONG_ENUM_NON_ENUM_DEFAULT = 108,
- VT_LONG_ENUM_NORMAL_DEFAULT = 110
+ VT_LONG_ENUM_NORMAL_DEFAULT = 110,
+ VT_NAN_DEFAULT = 112,
+ VT_INF_DEFAULT = 114,
+ VT_POSITIVE_INF_DEFAULT = 116,
+ VT_INFINITY_DEFAULT = 118,
+ VT_POSITIVE_INFINITY_DEFAULT = 120,
+ VT_NEGATIVE_INF_DEFAULT = 122,
+ VT_NEGATIVE_INFINITY_DEFAULT = 124,
+ VT_DOUBLE_INF_DEFAULT = 126
};
const MyGame::Example::Vec3 *pos() const {
return GetStruct<const MyGame::Example::Vec3 *>(VT_POS);
@@ -1732,6 +1748,54 @@
bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast<MyGame::Example::LongEnum>(2ULL)) {
return SetField<uint64_t>(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(_long_enum_normal_default), 2ULL);
}
+ float nan_default() const {
+ return GetField<float>(VT_NAN_DEFAULT, std::numeric_limits<float>::quiet_NaN());
+ }
+ bool mutate_nan_default(float _nan_default = std::numeric_limits<float>::quiet_NaN()) {
+ return SetField<float>(VT_NAN_DEFAULT, _nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ float inf_default() const {
+ return GetField<float>(VT_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_inf_default(float _inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INF_DEFAULT, _inf_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_inf_default() const {
+ return GetField<float>(VT_POSITIVE_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ float infinity_default() const {
+ return GetField<float>(VT_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_infinity_default(float _infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_infinity_default() const {
+ return GetField<float>(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float negative_inf_default() const {
+ return GetField<float>(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ float negative_infinity_default() const {
+ return GetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ double double_inf_default() const {
+ return GetField<double>(VT_DOUBLE_INF_DEFAULT, std::numeric_limits<double>::infinity());
+ }
+ bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits<double>::infinity()) {
+ return SetField<double>(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits<double>::infinity());
+ }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<MyGame::Example::Vec3>(verifier, VT_POS, 8) &&
@@ -1823,6 +1887,14 @@
VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
+ VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
verifier.EndTable();
}
MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
@@ -2017,6 +2089,30 @@
void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) {
fbb_.AddElement<uint64_t>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(long_enum_normal_default), 2ULL);
}
+ void add_nan_default(float nan_default) {
+ fbb_.AddElement<float>(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ void add_inf_default(float inf_default) {
+ fbb_.AddElement<float>(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_inf_default(float positive_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_infinity_default(float infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_infinity_default(float positive_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_negative_inf_default(float negative_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_negative_infinity_default(float negative_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_double_inf_default(double double_inf_default) {
+ fbb_.AddElement<double>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits<double>::infinity());
+ }
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
@@ -2083,8 +2179,17 @@
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<MyGame::Example::Stat>>> scalar_key_sorted_tables = 0,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
MonsterBuilder builder_(_fbb);
+ builder_.add_double_inf_default(double_inf_default);
builder_.add_long_enum_normal_default(long_enum_normal_default);
builder_.add_long_enum_non_enum_default(long_enum_non_enum_default);
builder_.add_non_owning_reference(non_owning_reference);
@@ -2094,6 +2199,13 @@
builder_.add_testhashs64_fnv1a(testhashs64_fnv1a);
builder_.add_testhashu64_fnv1(testhashu64_fnv1);
builder_.add_testhashs64_fnv1(testhashs64_fnv1);
+ builder_.add_negative_infinity_default(negative_infinity_default);
+ builder_.add_negative_inf_default(negative_inf_default);
+ builder_.add_positive_infinity_default(positive_infinity_default);
+ builder_.add_infinity_default(infinity_default);
+ builder_.add_positive_inf_default(positive_inf_default);
+ builder_.add_inf_default(inf_default);
+ builder_.add_nan_default(nan_default);
builder_.add_native_inline(native_inline);
builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables);
builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer);
@@ -2195,7 +2307,15 @@
std::vector<flatbuffers::Offset<MyGame::Example::Stat>> *scalar_key_sorted_tables = nullptr,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
auto name__ = name ? _fbb.CreateString(name) : 0;
auto inventory__ = inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0;
auto test4__ = test4 ? _fbb.CreateVectorOfStructs<MyGame::Example::Test>(*test4) : 0;
@@ -2271,7 +2391,15 @@
scalar_key_sorted_tables__,
native_inline,
long_enum_non_enum_default,
- long_enum_normal_default);
+ long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default);
}
flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
@@ -2767,7 +2895,15 @@
(lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr<MyGame::Example::StatT> const &a, flatbuffers::unique_ptr<MyGame::Example::StatT> const &b) { return (a == b) || (a && b && *a == *b); })) &&
(lhs.native_inline == rhs.native_inline) &&
(lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) &&
- (lhs.long_enum_normal_default == rhs.long_enum_normal_default);
+ (lhs.long_enum_normal_default == rhs.long_enum_normal_default) &&
+ (lhs.nan_default == rhs.nan_default) &&
+ (lhs.inf_default == rhs.inf_default) &&
+ (lhs.positive_inf_default == rhs.positive_inf_default) &&
+ (lhs.infinity_default == rhs.infinity_default) &&
+ (lhs.positive_infinity_default == rhs.positive_infinity_default) &&
+ (lhs.negative_inf_default == rhs.negative_inf_default) &&
+ (lhs.negative_infinity_default == rhs.negative_infinity_default) &&
+ (lhs.double_inf_default == rhs.double_inf_default);
}
inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) {
@@ -2820,7 +2956,15 @@
testrequirednestedflatbuffer(o.testrequirednestedflatbuffer),
native_inline(o.native_inline),
long_enum_non_enum_default(o.long_enum_non_enum_default),
- long_enum_normal_default(o.long_enum_normal_default) {
+ long_enum_normal_default(o.long_enum_normal_default),
+ nan_default(o.nan_default),
+ inf_default(o.inf_default),
+ positive_inf_default(o.positive_inf_default),
+ infinity_default(o.infinity_default),
+ positive_infinity_default(o.positive_infinity_default),
+ negative_inf_default(o.negative_inf_default),
+ negative_infinity_default(o.negative_infinity_default),
+ double_inf_default(o.double_inf_default) {
testarrayoftables.reserve(o.testarrayoftables.size());
for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); }
vector_of_referrables.reserve(o.vector_of_referrables.size());
@@ -2884,6 +3028,14 @@
std::swap(native_inline, o.native_inline);
std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default);
std::swap(long_enum_normal_default, o.long_enum_normal_default);
+ std::swap(nan_default, o.nan_default);
+ std::swap(inf_default, o.inf_default);
+ std::swap(positive_inf_default, o.positive_inf_default);
+ std::swap(infinity_default, o.infinity_default);
+ std::swap(positive_infinity_default, o.positive_infinity_default);
+ std::swap(negative_inf_default, o.negative_inf_default);
+ std::swap(negative_infinity_default, o.negative_infinity_default);
+ std::swap(double_inf_default, o.double_inf_default);
return *this;
}
@@ -2949,6 +3101,14 @@
{ auto _e = native_inline(); if (_e) _o->native_inline = *_e; }
{ auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; }
{ auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; }
+ { auto _e = nan_default(); _o->nan_default = _e; }
+ { auto _e = inf_default(); _o->inf_default = _e; }
+ { auto _e = positive_inf_default(); _o->positive_inf_default = _e; }
+ { auto _e = infinity_default(); _o->infinity_default = _e; }
+ { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; }
+ { auto _e = negative_inf_default(); _o->negative_inf_default = _e; }
+ { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; }
+ { auto _e = double_inf_default(); _o->double_inf_default = _e; }
}
inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
@@ -3012,6 +3172,14 @@
auto _native_inline = &_o->native_inline;
auto _long_enum_non_enum_default = _o->long_enum_non_enum_default;
auto _long_enum_normal_default = _o->long_enum_normal_default;
+ auto _nan_default = _o->nan_default;
+ auto _inf_default = _o->inf_default;
+ auto _positive_inf_default = _o->positive_inf_default;
+ auto _infinity_default = _o->infinity_default;
+ auto _positive_infinity_default = _o->positive_infinity_default;
+ auto _negative_inf_default = _o->negative_inf_default;
+ auto _negative_infinity_default = _o->negative_infinity_default;
+ auto _double_inf_default = _o->double_inf_default;
return MyGame::Example::CreateMonster(
_fbb,
_pos,
@@ -3066,7 +3234,15 @@
_scalar_key_sorted_tables,
_native_inline,
_long_enum_non_enum_default,
- _long_enum_normal_default);
+ _long_enum_normal_default,
+ _nan_default,
+ _inf_default,
+ _positive_inf_default,
+ _infinity_default,
+ _positive_infinity_default,
+ _negative_inf_default,
+ _negative_infinity_default,
+ _double_inf_default);
}
@@ -3846,7 +4022,15 @@
{ flatbuffers::ET_SEQUENCE, 1, 5 },
{ flatbuffers::ET_SEQUENCE, 0, 3 },
{ flatbuffers::ET_ULONG, 0, 12 },
- { flatbuffers::ET_ULONG, 0, 12 }
+ { flatbuffers::ET_ULONG, 0, 12 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_DOUBLE, 0, -1 }
};
static const flatbuffers::TypeFunction type_refs[] = {
MyGame::Example::Vec3TypeTable,
@@ -3917,10 +4101,18 @@
"scalar_key_sorted_tables",
"native_inline",
"long_enum_non_enum_default",
- "long_enum_normal_default"
+ "long_enum_normal_default",
+ "nan_default",
+ "inf_default",
+ "positive_inf_default",
+ "infinity_default",
+ "positive_infinity_default",
+ "negative_inf_default",
+ "negative_infinity_default",
+ "double_inf_default"
};
static const flatbuffers::TypeTable tt = {
- flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names
+ flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names
};
return &tt;
}
diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp
index deab77b..ce5acf8 100644
--- a/tests/monster_test_suffix/monster_test_suffix.hpp
+++ b/tests/monster_test_suffix/monster_test_suffix.hpp
@@ -10,9 +10,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace MyGame {
@@ -1309,6 +1309,14 @@
MyGame::Example::Test native_inline{};
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0);
MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne;
+ float nan_default = std::numeric_limits<float>::quiet_NaN();
+ float inf_default = std::numeric_limits<float>::infinity();
+ float positive_inf_default = std::numeric_limits<float>::infinity();
+ float infinity_default = std::numeric_limits<float>::infinity();
+ float positive_infinity_default = std::numeric_limits<float>::infinity();
+ float negative_inf_default = -std::numeric_limits<float>::infinity();
+ float negative_infinity_default = -std::numeric_limits<float>::infinity();
+ double double_inf_default = std::numeric_limits<double>::infinity();
MonsterT() = default;
MonsterT(const MonsterT &o);
MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default;
@@ -1375,7 +1383,15 @@
VT_SCALAR_KEY_SORTED_TABLES = 104,
VT_NATIVE_INLINE = 106,
VT_LONG_ENUM_NON_ENUM_DEFAULT = 108,
- VT_LONG_ENUM_NORMAL_DEFAULT = 110
+ VT_LONG_ENUM_NORMAL_DEFAULT = 110,
+ VT_NAN_DEFAULT = 112,
+ VT_INF_DEFAULT = 114,
+ VT_POSITIVE_INF_DEFAULT = 116,
+ VT_INFINITY_DEFAULT = 118,
+ VT_POSITIVE_INFINITY_DEFAULT = 120,
+ VT_NEGATIVE_INF_DEFAULT = 122,
+ VT_NEGATIVE_INFINITY_DEFAULT = 124,
+ VT_DOUBLE_INF_DEFAULT = 126
};
const MyGame::Example::Vec3 *pos() const {
return GetStruct<const MyGame::Example::Vec3 *>(VT_POS);
@@ -1732,6 +1748,54 @@
bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast<MyGame::Example::LongEnum>(2ULL)) {
return SetField<uint64_t>(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(_long_enum_normal_default), 2ULL);
}
+ float nan_default() const {
+ return GetField<float>(VT_NAN_DEFAULT, std::numeric_limits<float>::quiet_NaN());
+ }
+ bool mutate_nan_default(float _nan_default = std::numeric_limits<float>::quiet_NaN()) {
+ return SetField<float>(VT_NAN_DEFAULT, _nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ float inf_default() const {
+ return GetField<float>(VT_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_inf_default(float _inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INF_DEFAULT, _inf_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_inf_default() const {
+ return GetField<float>(VT_POSITIVE_INF_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ float infinity_default() const {
+ return GetField<float>(VT_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_infinity_default(float _infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float positive_infinity_default() const {
+ return GetField<float>(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits<float>::infinity());
+ }
+ bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ float negative_inf_default() const {
+ return GetField<float>(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ float negative_infinity_default() const {
+ return GetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits<float>::infinity());
+ }
+ bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits<float>::infinity()) {
+ return SetField<float>(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ double double_inf_default() const {
+ return GetField<double>(VT_DOUBLE_INF_DEFAULT, std::numeric_limits<double>::infinity());
+ }
+ bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits<double>::infinity()) {
+ return SetField<double>(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits<double>::infinity());
+ }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<MyGame::Example::Vec3>(verifier, VT_POS, 8) &&
@@ -1823,6 +1887,14 @@
VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
+ VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
+ VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
+ VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
verifier.EndTable();
}
MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
@@ -2017,6 +2089,30 @@
void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) {
fbb_.AddElement<uint64_t>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast<uint64_t>(long_enum_normal_default), 2ULL);
}
+ void add_nan_default(float nan_default) {
+ fbb_.AddElement<float>(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits<float>::quiet_NaN());
+ }
+ void add_inf_default(float inf_default) {
+ fbb_.AddElement<float>(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_inf_default(float positive_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits<float>::infinity());
+ }
+ void add_infinity_default(float infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_positive_infinity_default(float positive_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits<float>::infinity());
+ }
+ void add_negative_inf_default(float negative_inf_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_negative_infinity_default(float negative_infinity_default) {
+ fbb_.AddElement<float>(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits<float>::infinity());
+ }
+ void add_double_inf_default(double double_inf_default) {
+ fbb_.AddElement<double>(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits<double>::infinity());
+ }
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
@@ -2083,8 +2179,17 @@
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<MyGame::Example::Stat>>> scalar_key_sorted_tables = 0,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
MonsterBuilder builder_(_fbb);
+ builder_.add_double_inf_default(double_inf_default);
builder_.add_long_enum_normal_default(long_enum_normal_default);
builder_.add_long_enum_non_enum_default(long_enum_non_enum_default);
builder_.add_non_owning_reference(non_owning_reference);
@@ -2094,6 +2199,13 @@
builder_.add_testhashs64_fnv1a(testhashs64_fnv1a);
builder_.add_testhashu64_fnv1(testhashu64_fnv1);
builder_.add_testhashs64_fnv1(testhashs64_fnv1);
+ builder_.add_negative_infinity_default(negative_infinity_default);
+ builder_.add_negative_inf_default(negative_inf_default);
+ builder_.add_positive_infinity_default(positive_infinity_default);
+ builder_.add_infinity_default(infinity_default);
+ builder_.add_positive_inf_default(positive_inf_default);
+ builder_.add_inf_default(inf_default);
+ builder_.add_nan_default(nan_default);
builder_.add_native_inline(native_inline);
builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables);
builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer);
@@ -2195,7 +2307,15 @@
std::vector<flatbuffers::Offset<MyGame::Example::Stat>> *scalar_key_sorted_tables = nullptr,
const MyGame::Example::Test *native_inline = nullptr,
MyGame::Example::LongEnum long_enum_non_enum_default = static_cast<MyGame::Example::LongEnum>(0),
- MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) {
+ MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne,
+ float nan_default = std::numeric_limits<float>::quiet_NaN(),
+ float inf_default = std::numeric_limits<float>::infinity(),
+ float positive_inf_default = std::numeric_limits<float>::infinity(),
+ float infinity_default = std::numeric_limits<float>::infinity(),
+ float positive_infinity_default = std::numeric_limits<float>::infinity(),
+ float negative_inf_default = -std::numeric_limits<float>::infinity(),
+ float negative_infinity_default = -std::numeric_limits<float>::infinity(),
+ double double_inf_default = std::numeric_limits<double>::infinity()) {
auto name__ = name ? _fbb.CreateString(name) : 0;
auto inventory__ = inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0;
auto test4__ = test4 ? _fbb.CreateVectorOfStructs<MyGame::Example::Test>(*test4) : 0;
@@ -2271,7 +2391,15 @@
scalar_key_sorted_tables__,
native_inline,
long_enum_non_enum_default,
- long_enum_normal_default);
+ long_enum_normal_default,
+ nan_default,
+ inf_default,
+ positive_inf_default,
+ infinity_default,
+ positive_infinity_default,
+ negative_inf_default,
+ negative_infinity_default,
+ double_inf_default);
}
flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
@@ -2767,7 +2895,15 @@
(lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr<MyGame::Example::StatT> const &a, flatbuffers::unique_ptr<MyGame::Example::StatT> const &b) { return (a == b) || (a && b && *a == *b); })) &&
(lhs.native_inline == rhs.native_inline) &&
(lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) &&
- (lhs.long_enum_normal_default == rhs.long_enum_normal_default);
+ (lhs.long_enum_normal_default == rhs.long_enum_normal_default) &&
+ (lhs.nan_default == rhs.nan_default) &&
+ (lhs.inf_default == rhs.inf_default) &&
+ (lhs.positive_inf_default == rhs.positive_inf_default) &&
+ (lhs.infinity_default == rhs.infinity_default) &&
+ (lhs.positive_infinity_default == rhs.positive_infinity_default) &&
+ (lhs.negative_inf_default == rhs.negative_inf_default) &&
+ (lhs.negative_infinity_default == rhs.negative_infinity_default) &&
+ (lhs.double_inf_default == rhs.double_inf_default);
}
inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) {
@@ -2820,7 +2956,15 @@
testrequirednestedflatbuffer(o.testrequirednestedflatbuffer),
native_inline(o.native_inline),
long_enum_non_enum_default(o.long_enum_non_enum_default),
- long_enum_normal_default(o.long_enum_normal_default) {
+ long_enum_normal_default(o.long_enum_normal_default),
+ nan_default(o.nan_default),
+ inf_default(o.inf_default),
+ positive_inf_default(o.positive_inf_default),
+ infinity_default(o.infinity_default),
+ positive_infinity_default(o.positive_infinity_default),
+ negative_inf_default(o.negative_inf_default),
+ negative_infinity_default(o.negative_infinity_default),
+ double_inf_default(o.double_inf_default) {
testarrayoftables.reserve(o.testarrayoftables.size());
for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); }
vector_of_referrables.reserve(o.vector_of_referrables.size());
@@ -2884,6 +3028,14 @@
std::swap(native_inline, o.native_inline);
std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default);
std::swap(long_enum_normal_default, o.long_enum_normal_default);
+ std::swap(nan_default, o.nan_default);
+ std::swap(inf_default, o.inf_default);
+ std::swap(positive_inf_default, o.positive_inf_default);
+ std::swap(infinity_default, o.infinity_default);
+ std::swap(positive_infinity_default, o.positive_infinity_default);
+ std::swap(negative_inf_default, o.negative_inf_default);
+ std::swap(negative_infinity_default, o.negative_infinity_default);
+ std::swap(double_inf_default, o.double_inf_default);
return *this;
}
@@ -2949,6 +3101,14 @@
{ auto _e = native_inline(); if (_e) _o->native_inline = *_e; }
{ auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; }
{ auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; }
+ { auto _e = nan_default(); _o->nan_default = _e; }
+ { auto _e = inf_default(); _o->inf_default = _e; }
+ { auto _e = positive_inf_default(); _o->positive_inf_default = _e; }
+ { auto _e = infinity_default(); _o->infinity_default = _e; }
+ { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; }
+ { auto _e = negative_inf_default(); _o->negative_inf_default = _e; }
+ { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; }
+ { auto _e = double_inf_default(); _o->double_inf_default = _e; }
}
inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
@@ -3012,6 +3172,14 @@
auto _native_inline = &_o->native_inline;
auto _long_enum_non_enum_default = _o->long_enum_non_enum_default;
auto _long_enum_normal_default = _o->long_enum_normal_default;
+ auto _nan_default = _o->nan_default;
+ auto _inf_default = _o->inf_default;
+ auto _positive_inf_default = _o->positive_inf_default;
+ auto _infinity_default = _o->infinity_default;
+ auto _positive_infinity_default = _o->positive_infinity_default;
+ auto _negative_inf_default = _o->negative_inf_default;
+ auto _negative_infinity_default = _o->negative_infinity_default;
+ auto _double_inf_default = _o->double_inf_default;
return MyGame::Example::CreateMonster(
_fbb,
_pos,
@@ -3066,7 +3234,15 @@
_scalar_key_sorted_tables,
_native_inline,
_long_enum_non_enum_default,
- _long_enum_normal_default);
+ _long_enum_normal_default,
+ _nan_default,
+ _inf_default,
+ _positive_inf_default,
+ _infinity_default,
+ _positive_infinity_default,
+ _negative_inf_default,
+ _negative_infinity_default,
+ _double_inf_default);
}
@@ -3846,7 +4022,15 @@
{ flatbuffers::ET_SEQUENCE, 1, 5 },
{ flatbuffers::ET_SEQUENCE, 0, 3 },
{ flatbuffers::ET_ULONG, 0, 12 },
- { flatbuffers::ET_ULONG, 0, 12 }
+ { flatbuffers::ET_ULONG, 0, 12 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_FLOAT, 0, -1 },
+ { flatbuffers::ET_DOUBLE, 0, -1 }
};
static const flatbuffers::TypeFunction type_refs[] = {
MyGame::Example::Vec3TypeTable,
@@ -3917,10 +4101,18 @@
"scalar_key_sorted_tables",
"native_inline",
"long_enum_non_enum_default",
- "long_enum_normal_default"
+ "long_enum_normal_default",
+ "nan_default",
+ "inf_default",
+ "positive_inf_default",
+ "infinity_default",
+ "positive_infinity_default",
+ "negative_inf_default",
+ "negative_infinity_default",
+ "double_inf_default"
};
static const flatbuffers::TypeTable tt = {
- flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names
+ flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names
};
return &tt;
}
diff --git a/tests/more_defaults/abc_generated.rs b/tests/more_defaults/abc_generated.rs
index f2bdbad..cff89ca 100644
--- a/tests/more_defaults/abc_generated.rs
+++ b/tests/more_defaults/abc_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for ABC {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i32>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i32>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for ABC {
type Output = ABC;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i32>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i32>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for ABC {
+ type Scalar = i32;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i32::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i32 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i32::from_le(self.0);
+ fn from_little_endian(v: i32) -> Self {
+ let b = i32::from_le(v);
Self(b)
}
}
diff --git a/tests/more_defaults/more_defaults_generated.rs b/tests/more_defaults/more_defaults_generated.rs
index 27fa65c..99444b8 100644
--- a/tests/more_defaults/more_defaults_generated.rs
+++ b/tests/more_defaults/more_defaults_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for MoreDefaults<'a> {
type Inner = MoreDefaults<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -37,7 +37,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
MoreDefaults { _tab: table }
}
#[allow(unused_mut)]
@@ -78,7 +78,7 @@
};
let bools = {
let x = self.bools();
- x.to_vec()
+ x.into_iter().collect()
};
MoreDefaultsT {
ints,
@@ -92,27 +92,45 @@
#[inline]
pub fn ints(&self) -> flatbuffers::Vector<'a, i32> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i32>>>(MoreDefaults::VT_INTS, Some(Default::default())).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i32>>>(MoreDefaults::VT_INTS, Some(Default::default())).unwrap()}
}
#[inline]
pub fn floats(&self) -> flatbuffers::Vector<'a, f32> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f32>>>(MoreDefaults::VT_FLOATS, Some(Default::default())).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f32>>>(MoreDefaults::VT_FLOATS, Some(Default::default())).unwrap()}
}
#[inline]
pub fn empty_string(&self) -> &'a str {
- self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(MoreDefaults::VT_EMPTY_STRING, Some(&"")).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(MoreDefaults::VT_EMPTY_STRING, Some(&"")).unwrap()}
}
#[inline]
pub fn some_string(&self) -> &'a str {
- self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(MoreDefaults::VT_SOME_STRING, Some(&"some")).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(MoreDefaults::VT_SOME_STRING, Some(&"some")).unwrap()}
}
#[inline]
pub fn abcs(&self) -> flatbuffers::Vector<'a, ABC> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, ABC>>>(MoreDefaults::VT_ABCS, Some(Default::default())).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, ABC>>>(MoreDefaults::VT_ABCS, Some(Default::default())).unwrap()}
}
#[inline]
- pub fn bools(&self) -> &'a [bool] {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(MoreDefaults::VT_BOOLS, Some(Default::default())).map(|v| v.safe_slice()).unwrap()
+ pub fn bools(&self) -> flatbuffers::Vector<'a, bool> {
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(MoreDefaults::VT_BOOLS, Some(Default::default())).unwrap()}
}
}
diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs
index fab8e02..00cd478 100644
--- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs
+++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); }
public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java
index e185e4b..211d1c4 100644
--- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java
+++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class TableInNestedNS extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); }
public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt
index 0fbbba8..4d9c9fe 100644
--- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt
+++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt
@@ -32,7 +32,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS())
fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs
index 9db2226..894c29c 100644
--- a/tests/namespace_test/NamespaceA/SecondTableInA.cs
+++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); }
public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java
index f2e65d4..0294af8 100644
--- a/tests/namespace_test/NamespaceA/SecondTableInA.java
+++ b/tests/namespace_test/NamespaceA/SecondTableInA.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class SecondTableInA extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); }
public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt
index 50d02df..4bcea93 100644
--- a/tests/namespace_test/NamespaceA/SecondTableInA.kt
+++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt
@@ -27,7 +27,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA())
fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs
index ad72eee..d3ab94d 100644
--- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs
+++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); }
public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java
index 809ece2..415f083 100644
--- a/tests/namespace_test/NamespaceA/TableInFirstNS.java
+++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class TableInFirstNS extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); }
public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt
index 4ae9368..a5cb752 100644
--- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt
+++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt
@@ -67,7 +67,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS())
fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs
index 50ca3e4..4ad9eaf 100644
--- a/tests/namespace_test/NamespaceC/TableInC.cs
+++ b/tests/namespace_test/NamespaceC/TableInC.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); }
public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java
index 7af7620..e139cbb 100644
--- a/tests/namespace_test/NamespaceC/TableInC.java
+++ b/tests/namespace_test/NamespaceC/TableInC.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class TableInC extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); }
public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt
index b195c6c..cc90e58 100644
--- a/tests/namespace_test/NamespaceC/TableInC.kt
+++ b/tests/namespace_test/NamespaceC/TableInC.kt
@@ -36,7 +36,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC())
fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/namespace_test/namespace_a/namespace_b/enum_in_nested_ns_generated.rs b/tests/namespace_test/namespace_a/namespace_b/enum_in_nested_ns_generated.rs
index 246d28f..59277bd 100644
--- a/tests/namespace_test/namespace_a/namespace_b/enum_in_nested_ns_generated.rs
+++ b/tests/namespace_test/namespace_a/namespace_b/enum_in_nested_ns_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for EnumInNestedNS {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for EnumInNestedNS {
type Output = EnumInNestedNS;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for EnumInNestedNS {
+ type Scalar = i8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i8::from_le(self.0);
+ fn from_little_endian(v: i8) -> Self {
+ let b = i8::from_le(v);
Self(b)
}
}
diff --git a/tests/namespace_test/namespace_a/namespace_b/struct_in_nested_ns_generated.rs b/tests/namespace_test/namespace_a/namespace_b/struct_in_nested_ns_generated.rs
index dc13b0c..f2a15f4 100644
--- a/tests/namespace_test/namespace_a/namespace_b/struct_in_nested_ns_generated.rs
+++ b/tests/namespace_test/namespace_a/namespace_b/struct_in_nested_ns_generated.rs
@@ -28,39 +28,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for StructInNestedNS {}
-impl flatbuffers::SafeSliceAccess for StructInNestedNS {}
impl<'a> flatbuffers::Follow<'a> for StructInNestedNS {
type Inner = &'a StructInNestedNS;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a StructInNestedNS>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a StructInNestedNS {
type Inner = &'a StructInNestedNS;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<StructInNestedNS>(buf, loc)
}
}
impl<'b> flatbuffers::Push for StructInNestedNS {
type Output = StructInNestedNS;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const StructInNestedNS as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b StructInNestedNS {
- type Output = StructInNestedNS;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const StructInNestedNS as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const StructInNestedNS as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -92,47 +78,59 @@
}
pub fn a(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_a(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
pub fn b(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[4..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_b(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[4..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs b/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs
index 76744f9..5d6957a 100644
--- a/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs
+++ b/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableInNestedNS<'a> {
type Inner = TableInNestedNS<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableInNestedNS { _tab: table }
}
#[allow(unused_mut)]
@@ -54,7 +54,10 @@
#[inline]
pub fn foo(&self) -> i32 {
- self._tab.get::<i32>(TableInNestedNS::VT_FOO, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(TableInNestedNS::VT_FOO, Some(0)).unwrap()}
}
}
diff --git a/tests/namespace_test/namespace_a/namespace_b/union_in_nested_ns_generated.rs b/tests/namespace_test/namespace_a/namespace_b/union_in_nested_ns_generated.rs
index a77108f..4256cc8 100644
--- a/tests/namespace_test/namespace_a/namespace_b/union_in_nested_ns_generated.rs
+++ b/tests/namespace_test/namespace_a/namespace_b/union_in_nested_ns_generated.rs
@@ -55,10 +55,8 @@
impl<'a> flatbuffers::Follow<'a> for UnionInNestedNS {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -66,21 +64,21 @@
impl flatbuffers::Push for UnionInNestedNS {
type Output = UnionInNestedNS;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for UnionInNestedNS {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/namespace_test/namespace_a/second_table_in_a_generated.rs b/tests/namespace_test/namespace_a/second_table_in_a_generated.rs
index c32fdc0..92b11c9 100644
--- a/tests/namespace_test/namespace_a/second_table_in_a_generated.rs
+++ b/tests/namespace_test/namespace_a/second_table_in_a_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for SecondTableInA<'a> {
type Inner = SecondTableInA<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
SecondTableInA { _tab: table }
}
#[allow(unused_mut)]
@@ -56,7 +56,10 @@
#[inline]
pub fn refer_to_c(&self) -> Option<super::namespace_c::TableInC<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::namespace_c::TableInC>>(SecondTableInA::VT_REFER_TO_C, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::namespace_c::TableInC>>(SecondTableInA::VT_REFER_TO_C, None)}
}
}
diff --git a/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs b/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs
index ab46d7e..b7bd1c7 100644
--- a/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs
+++ b/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableInFirstNS<'a> {
type Inner = TableInFirstNS<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -36,7 +36,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableInFirstNS { _tab: table }
}
#[allow(unused_mut)]
@@ -80,29 +80,49 @@
#[inline]
pub fn foo_table(&self) -> Option<namespace_b::TableInNestedNS<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<namespace_b::TableInNestedNS>>(TableInFirstNS::VT_FOO_TABLE, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<namespace_b::TableInNestedNS>>(TableInFirstNS::VT_FOO_TABLE, None)}
}
#[inline]
pub fn foo_enum(&self) -> namespace_b::EnumInNestedNS {
- self._tab.get::<namespace_b::EnumInNestedNS>(TableInFirstNS::VT_FOO_ENUM, Some(namespace_b::EnumInNestedNS::A)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<namespace_b::EnumInNestedNS>(TableInFirstNS::VT_FOO_ENUM, Some(namespace_b::EnumInNestedNS::A)).unwrap()}
}
#[inline]
pub fn foo_union_type(&self) -> namespace_b::UnionInNestedNS {
- self._tab.get::<namespace_b::UnionInNestedNS>(TableInFirstNS::VT_FOO_UNION_TYPE, Some(namespace_b::UnionInNestedNS::NONE)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<namespace_b::UnionInNestedNS>(TableInFirstNS::VT_FOO_UNION_TYPE, Some(namespace_b::UnionInNestedNS::NONE)).unwrap()}
}
#[inline]
pub fn foo_union(&self) -> Option<flatbuffers::Table<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(TableInFirstNS::VT_FOO_UNION, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(TableInFirstNS::VT_FOO_UNION, None)}
}
#[inline]
pub fn foo_struct(&self) -> Option<&'a namespace_b::StructInNestedNS> {
- self._tab.get::<namespace_b::StructInNestedNS>(TableInFirstNS::VT_FOO_STRUCT, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<namespace_b::StructInNestedNS>(TableInFirstNS::VT_FOO_STRUCT, None)}
}
#[inline]
#[allow(non_snake_case)]
pub fn foo_union_as_table_in_nested_ns(&self) -> Option<namespace_b::TableInNestedNS<'a>> {
if self.foo_union_type() == namespace_b::UnionInNestedNS::TableInNestedNS {
- self.foo_union().map(namespace_b::TableInNestedNS::init_from_table)
+ self.foo_union().map(|t| {
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid union in this slot
+ unsafe { namespace_b::TableInNestedNS::init_from_table(t) }
+ })
} else {
None
}
diff --git a/tests/namespace_test/namespace_c/table_in_c_generated.rs b/tests/namespace_test/namespace_c/table_in_c_generated.rs
index a6ba7bf..63b84d1 100644
--- a/tests/namespace_test/namespace_c/table_in_c_generated.rs
+++ b/tests/namespace_test/namespace_c/table_in_c_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for TableInC<'a> {
type Inner = TableInC<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -33,7 +33,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TableInC { _tab: table }
}
#[allow(unused_mut)]
@@ -62,11 +62,17 @@
#[inline]
pub fn refer_to_a1(&self) -> Option<super::namespace_a::TableInFirstNS<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::namespace_a::TableInFirstNS>>(TableInC::VT_REFER_TO_A1, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::namespace_a::TableInFirstNS>>(TableInC::VT_REFER_TO_A1, None)}
}
#[inline]
pub fn refer_to_a2(&self) -> Option<super::namespace_a::SecondTableInA<'a>> {
- self._tab.get::<flatbuffers::ForwardsUOffset<super::namespace_a::SecondTableInA>>(TableInC::VT_REFER_TO_A2, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<super::namespace_a::SecondTableInA>>(TableInC::VT_REFER_TO_A2, None)}
}
}
diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h
index c2af28e..da40591 100644
--- a/tests/namespace_test/namespace_test1_generated.h
+++ b/tests/namespace_test/namespace_test1_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace NamespaceA {
diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h
index 85dc12f..3d55c5e 100644
--- a/tests/namespace_test/namespace_test2_generated.h
+++ b/tests/namespace_test/namespace_test2_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace NamespaceA {
diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h
index 9502663..80626b8 100644
--- a/tests/native_inline_table_test_generated.h
+++ b/tests/native_inline_table_test_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
struct NativeInlineTable;
diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h
index 63304f1..7662862 100644
--- a/tests/native_type_test_generated.h
+++ b/tests/native_type_test_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
#include "native_type_test_impl.h"
diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs
index 85040c5..b59013c 100644
--- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs
+++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); }
public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/nested_union_test.fbs b/tests/nested_union_test.fbs
new file mode 100644
index 0000000..daa6048
--- /dev/null
+++ b/tests/nested_union_test.fbs
@@ -0,0 +1,36 @@
+namespace MyGame.Example.NestedUnion;
+
+/// Composite components of Monster color.
+enum Color:ubyte (bit_flags) {
+ Red = 0, // color Red = (1u << 0)
+ /// \brief color Green
+ /// Green is bit_flag with value (1u << 1)
+ Green,
+ /// \brief color Blue (1u << 3)
+ Blue = 3,
+}
+
+table TestSimpleTableWithEnum (csharp_partial, private) {
+ color: Color = Green;
+}
+
+struct Test { a:short; b:byte; }
+
+table Vec3 {
+ x:double;
+ y:double;
+ z:double;
+ test1:double;
+ test2:Color;
+ test3:Test;
+}
+
+union Any { Vec3, TestSimpleTableWithEnum }
+
+table NestedUnionTest {
+ name:string;
+ data:Any;
+ id:short;
+}
+
+root_type NestedUnionTest;
\ No newline at end of file
diff --git a/tests/nim/testnim.py b/tests/nim/testnim.py
new file mode 100644
index 0000000..2a54cf3
--- /dev/null
+++ b/tests/nim/testnim.py
@@ -0,0 +1,22 @@
+import glob
+import os
+import shutil
+import subprocess
+from pathlib import Path
+
+test_nim_dir = Path(__file__).absolute().parent
+test_dir = test_nim_dir.parent
+
+
+def main():
+ try:
+ subprocess.check_call("testament --megatest:off all".split())
+ finally:
+ shutil.rmtree(test_nim_dir / "nimcache")
+ shutil.rmtree(test_nim_dir / "testresults")
+ for f in glob.glob(str(test_nim_dir / "tests" / "*" / "test")):
+ os.remove(f)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/tests/nim/tests/moredefaults/test.nim b/tests/nim/tests/moredefaults/test.nim
new file mode 100644
index 0000000..b49dc16
--- /dev/null
+++ b/tests/nim/tests/moredefaults/test.nim
@@ -0,0 +1,27 @@
+discard """
+ action: "run"
+ exitcode: 0
+ timeout: 60.0
+"""
+import std/unittest
+import flatbuffers
+import ../../../MoreDefaults
+
+suite "TestMoreDefaults":
+
+ test "testFlatbuffersObject":
+ var fbb = newBuilder(0)
+ fbb.MoreDefaultsStart()
+ let root = fbb.MoreDefaultsEnd()
+ fbb.Finish(root)
+
+ var defaults: MoreDefaults
+ defaults.GetRootAs(fbb.FinishedBytes(), 0)
+ check(defaults.emptyString == "")
+ check(defaults.ints == [])
+ check(defaults.floats == [])
+ check(defaults.bools == [])
+ check(defaults.intsLength == 0)
+ check(defaults.floatsLength == 0)
+ check(defaults.abcsLength == 0)
+ check(defaults.boolsLength == 0)
diff --git a/tests/nim/tests/mutatingbool/test.nim b/tests/nim/tests/mutatingbool/test.nim
new file mode 100644
index 0000000..b079cbf
--- /dev/null
+++ b/tests/nim/tests/mutatingbool/test.nim
@@ -0,0 +1,39 @@
+discard """
+ action: "run"
+ exitcode: 0
+ timeout: 60.0
+"""
+import std/unittest
+import std/options
+import flatbuffers
+import ../../../TestMutatingBool
+import ../../../Property
+
+suite "TestMutatingBool":
+
+ test "MutatingBool":
+ var builder = newBuilder(1024)
+ builder.TestMutatingBoolStart()
+ builder.TestMutatingBoolAddB(builder.PropertyCreate(false))
+ let root = builder.TestMutatingBoolEnd()
+ builder.Finish(root)
+
+ var test_mutating_bool: TestMutatingBool
+ GetRootAs(test_mutating_bool, builder.FinishedBytes(), 0)
+ check(test_mutating_bool.b.isSome)
+ var prop2 = test_mutating_bool.b.get()
+ check(prop2.property == false)
+ discard (prop2.property = false)
+ check(prop2.property == false)
+ discard (prop2.property = true)
+ check(prop2.property == true)
+
+ test "EmptyBool":
+ var builder = newBuilder(1024)
+ builder.TestMutatingBoolStart()
+ let root = builder.TestMutatingBoolEnd()
+ builder.Finish(root)
+
+ var test_mutating_bool: TestMutatingBool
+ GetRootAs(test_mutating_bool, builder.FinishedBytes(), 0)
+ check(test_mutating_bool.b.isNone)
diff --git a/tests/nim/tests/mygame/test.nim b/tests/nim/tests/mygame/test.nim
new file mode 100644
index 0000000..c971d60
--- /dev/null
+++ b/tests/nim/tests/mygame/test.nim
@@ -0,0 +1,207 @@
+discard """
+ action: "run"
+ exitcode: 0
+ timeout: 60.0
+"""
+import std/unittest
+import std/options
+import flatbuffers
+import ../../../MyGame/Example/Test
+import ../../../MyGame/Example/Monster
+import ../../../MyGame/Example/Vec3
+import ../../../MyGame/Example/Color as ColorMod
+import ../../../MyGame/Example/Any as AnyMod
+
+proc verifyMonster(monster: var Monster) =
+ check(monster.hp == 80)
+ check(monster.mana == 150)
+ check(monster.name == "MyMonster")
+ check(monster.pos.isSome)
+ let pos = monster.pos.get()
+ check(pos.x == 1)
+ check(pos.y == 2)
+ check(pos.z == 3)
+ check(pos.test1 == 3)
+ check(pos.test2 == Color.Green)
+ check(pos.test3.a == 5)
+ check(pos.test3.b == 6)
+ check(monster.testType == Any.Monster)
+ check(monster.test.isSome)
+ let monster2 = Monster(tab: monster.test.get())
+ check(monster2.name == "Fred")
+ check((monster.mana = 10) == false)
+ check(monster.mana == 150)
+ check(monster.inventoryLength == 5)
+ var sum: uint8 = 0
+ for item in monster.inventory:
+ sum += item
+ check(sum == 10)
+ check(monster.test4Length == 2)
+
+ let test0 = monster.test4(0)
+ let test1 = monster.test4(1)
+ var sum0 = test0.a + test0.b
+ var sum1 = test1.a + test1.b
+ check(sum0 + sum1 == 100)
+
+ check(monster.testarrayofstringLength == 2)
+ check(monster.testarrayofstring(0) == "test1")
+ check(monster.testarrayofstring(1) == "test2")
+ check(monster.testbool == true)
+
+
+suite "TestMyGame":
+
+ test "testData":
+ let data: seq[byte] = @[byte(48), 0, 0, 0, 77, 79, 78, 83, 0, 0, 0, 0, 36,
+ 0, 72, 0, 40, 0, 0, 0, 38, 0, 32, 0, 0, 0, 28, 0, 0, 0, 27, 0, 20, 0,
+ 16, 0, 12, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 36, 0, 0, 0, 164, 0, 0, 0,
+ 0, 0, 0, 1, 60, 0, 0, 0, 68, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0,
+ 0, 120, 0, 0, 0, 0, 0, 80, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 2, 0, 5, 0, 6, 0, 0, 0, 2, 0, 0, 0,
+ 64, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 30, 0, 40, 0, 10, 0, 20, 0, 152,
+ 255, 255, 255, 4, 0, 0, 0, 4, 0, 0, 0, 70, 114, 101, 100, 0, 0, 0, 0, 5,
+ 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 50, 0,
+ 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 49, 0, 0, 0, 9, 0, 0, 0, 77, 121,
+ 77, 111, 110, 115, 116, 101, 114, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, 36,
+ 0, 0, 0, 4, 0, 0, 0, 240, 255, 255, 255, 32, 0, 0, 0, 248, 255, 255,
+ 255, 36, 0, 0, 0, 12, 0, 8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 28,
+ 0, 0, 0, 5, 0, 0, 0, 87, 105, 108, 109, 97, 0, 0, 0, 6, 0, 0, 0, 66, 97,
+ 114, 110, 101, 121, 0, 0, 5, 0, 0, 0, 70, 114, 111, 100, 111, 0, 0, 0]
+ var monster: Monster
+ GetRootAs(monster, data, 0)
+ verifyMonster(monster)
+
+ test "testCreateString":
+ var fbb = newBuilder(0)
+ let name = fbb.Create("Frodo")
+ fbb.Finish(name)
+ check(fbb.FinishedBytes() == @[byte(4), 0, 0, 0, 5, 0, 0, 0, 70, 114, 111,
+ 100, 111, 0, 0, 0])
+
+ test "testCreateVector":
+ var fbb = newBuilder(0)
+ let vec = fbb.Create(@[byte(0), 1, 2, 3, 4])
+ fbb.Finish(vec)
+ check(fbb.FinishedBytes() == @[byte(4), 0, 0, 0, 5, 0, 0, 0, 0, 1, 2, 3, 4,
+ 0, 0, 0])
+
+ test "createSimpleMonster":
+ var fbb = newBuilder(0)
+ let names = [
+ fbb.Create("Frodo"),
+ fbb.Create("Barney"),
+ fbb.Create("Wilma"),
+ ]
+ fbb.MonsterStart()
+ fbb.MonsterAddName(names[0])
+ let monster = fbb.MonsterEnd()
+ fbb.Finish(monster)
+ check(fbb.FinishedBytes() == @[byte(16), 0, 0, 0, 12, 0, 8, 0, 0, 0, 0, 0,
+ 0, 0, 4, 0, 12, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 87, 105, 108, 109, 97,
+ 0, 0, 0, 6, 0, 0, 0, 66, 97, 114, 110, 101, 121, 0, 0, 5, 0, 0, 0, 70,
+ 114, 111, 100, 111, 0, 0, 0])
+
+ test "testCreateTestVector":
+ var fbb = newBuilder(0)
+ fbb.MonsterStartTest4Vector(2)
+ discard fbb.TestCreate(a = 30, b = 40)
+ discard fbb.TestCreate(a = 10, b = 20)
+ let test4 = fbb.EndVector()
+ fbb.Finish(test4)
+ check(fbb.FinishedBytes() == @[byte(4), 0, 0, 0, 2, 0, 0, 0, 10, 0, 20, 0,
+ 30, 0, 40, 0])
+
+ test "testTableWithStruct":
+ var fbb = newBuilder(0)
+ fbb.MonsterStart()
+ fbb.MonsterAddPos(fbb.Vec3Create(x = 1,
+ y = 2,
+ z = 3,
+ test1 = 3,
+ test2 = Color.Green,
+ test3_a = 5, test3_b = 6))
+
+ let monster_end = fbb.MonsterEnd()
+ fbb.Finish(monster_end)
+ check(fbb.FinishedBytes() == @[byte(12), 0, 0, 0, 0, 0, 6, 0, 36, 0, 4, 0,
+ 6, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8, 64, 2, 0, 5, 0, 6, 0, 0, 0])
+
+ test "testCreateMonster":
+ var fbb = newBuilder(0)
+ let names = [
+ fbb.Create("Frodo"),
+ fbb.Create("Barney"),
+ fbb.Create("Wilma"),
+ ]
+
+ var offsets: seq[uoffset] = @[]
+ fbb.MonsterStart()
+ fbb.MonsterAddName(names[0])
+ offsets.add(fbb.MonsterEnd())
+ fbb.MonsterStart()
+ fbb.MonsterAddName(names[1])
+ offsets.add(fbb.MonsterEnd())
+ fbb.MonsterStart()
+ fbb.MonsterAddName(names[2])
+ offsets.add(fbb.MonsterEnd())
+
+ let str = fbb.Create("MyMonster")
+ let test1 = fbb.Create("test1")
+ let test2 = fbb.Create("test2")
+ let inv = fbb.Create(@[byte(0), 1, 2, 3, 4])
+ let fred = fbb.Create("Fred")
+ fbb.MonsterStart()
+ fbb.MonsterAddName(fred)
+ let mon2 = fbb.MonsterEnd()
+
+ fbb.MonsterStartTest4Vector(2)
+ discard fbb.TestCreate(a = 30, b = 40)
+ discard fbb.TestCreate(a = 10, b = 20)
+ let test4 = fbb.EndVector()
+
+ fbb.MonsterStartTestarrayofstringVector(2)
+ fbb.PrependOffsetRelative(test1)
+ fbb.PrependOffsetRelative(test2)
+ let stringTestVector = fbb.EndVector()
+
+ fbb.MonsterStartTestarrayoftablesVector(3)
+ fbb.PrependOffsetRelative(offsets[0])
+ fbb.PrependOffsetRelative(offsets[1])
+ fbb.PrependOffsetRelative(offsets[2])
+ let tableTestVector = fbb.EndVector()
+
+ fbb.MonsterStart()
+ fbb.MonsterAddPos(fbb.Vec3Create(x = 1,
+ y = 2,
+ z = 3,
+ test1 = 3,
+ test2 = Color.Green,
+ test3_a = 5, test3_b = 6))
+ fbb.MonsterAddHp(80)
+ fbb.MonsterAddName(str)
+ fbb.MonsterAddInventory(inv)
+ fbb.MonsterAddTestType(Any.Monster.uint8)
+ fbb.MonsterAddTest(mon2)
+ fbb.MonsterAddTest4(test4)
+ fbb.MonsterAddTestarrayofstring(stringTestVector)
+ fbb.MonsterAddTestbool(true)
+ fbb.MonsterAddTestarrayoftables(tableTestVector)
+ let monster_end = fbb.MonsterEnd()
+ fbb.Finish(monster_end)
+ check(fbb.FinishedBytes() == @[byte(40), 0, 0, 0, 36, 0, 72, 0, 40, 0, 0, 0,
+ 38, 0, 32, 0, 0, 0, 28, 0, 0, 0, 27, 0, 20, 0, 16, 0, 12, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 11, 0, 36, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0,
+ 84, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 1, 104, 0, 0, 0, 136, 0, 0, 0, 0, 0,
+ 80, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 8, 64, 2, 0, 5, 0, 6, 0, 0, 0, 3, 0, 0, 0, 108, 0, 0, 0, 112, 0,
+ 0, 0, 128, 0, 0, 0, 2, 0, 0, 0, 52, 0, 0, 0, 60, 0, 0, 0, 2, 0, 0, 0,
+ 10, 0, 20, 0, 30, 0, 40, 0, 168, 255, 255, 255, 4, 0, 0, 0, 4, 0, 0, 0,
+ 70, 114, 101, 100, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 5, 0,
+ 0, 0, 116, 101, 115, 116, 50, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116,
+ 49, 0, 0, 0, 9, 0, 0, 0, 77, 121, 77, 111, 110, 115, 116, 101, 114, 0,
+ 0, 0, 240, 255, 255, 255, 32, 0, 0, 0, 248, 255, 255, 255, 36, 0, 0, 0,
+ 12, 0, 8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0,
+ 0, 87, 105, 108, 109, 97, 0, 0, 0, 6, 0, 0, 0, 66, 97, 114, 110, 101,
+ 121, 0, 0, 5, 0, 0, 0, 70, 114, 111, 100, 111, 0, 0, 0])
diff --git a/tests/nim/tests/optional_scalars/test.nim b/tests/nim/tests/optional_scalars/test.nim
new file mode 100644
index 0000000..1e02c59
--- /dev/null
+++ b/tests/nim/tests/optional_scalars/test.nim
@@ -0,0 +1,29 @@
+discard """
+ action: "run"
+ exitcode: 0
+ timeout: 60.0
+"""
+import std/unittest
+import std/options
+import flatbuffers
+import ../../../optional_scalars/ScalarStuff
+
+
+suite "TestOptionalScalars":
+
+ test "OptionalScalars":
+ var builder = newBuilder(1024)
+ builder.ScalarStuffStart()
+ let root = builder.ScalarStuffEnd()
+ builder.Finish(root)
+
+ var optionals: ScalarStuff
+ optionals.GetRootAs(builder.FinishedBytes(), 0)
+
+ # Creates a flatbuffer with optional values.
+ check(optionals.justI8 == 0)
+ check(optionals.maybeF32.isNone)
+ check(optionals.defaultBool == true)
+ check(optionals.justU16 == 0)
+ check(optionals.maybeEnum.isNone)
+ check(optionals.defaultU64 == 42)
diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim
new file mode 100644
index 0000000..8a4e23c
--- /dev/null
+++ b/tests/optional_scalars/OptionalByte.nim
@@ -0,0 +1,14 @@
+#[ optional_scalars.OptionalByte
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : optional_scalars.ScalarStuff ()
+]#
+
+type OptionalByte*{.pure.} = enum
+ None = 0.int8,
+ One = 1.int8,
+ Two = 2.int8,
diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs
index 85c1672..f1a6517 100644
--- a/tests/optional_scalars/ScalarStuff.cs
+++ b/tests/optional_scalars/ScalarStuff.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); }
public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); }
diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java
index f4890b1..f8adf64 100644
--- a/tests/optional_scalars/ScalarStuff.java
+++ b/tests/optional_scalars/ScalarStuff.java
@@ -9,7 +9,7 @@
@SuppressWarnings("unused")
public final class ScalarStuff extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); }
public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); }
diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt
index e9067bb..22d1796 100644
--- a/tests/optional_scalars/ScalarStuff.kt
+++ b/tests/optional_scalars/ScalarStuff.kt
@@ -197,7 +197,7 @@
return if(o != 0) bb.get(o + bb_pos) else 1
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff())
fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim
new file mode 100644
index 0000000..6df1403
--- /dev/null
+++ b/tests/optional_scalars/ScalarStuff.nim
@@ -0,0 +1,331 @@
+#[ optional_scalars.ScalarStuff
+ Automatically generated by the FlatBuffers compiler, do not modify.
+ Or modify. I'm a message, not a cop.
+
+ flatc version: 22.10.26
+
+ Declared by :
+ Rooting type : optional_scalars.ScalarStuff ()
+]#
+
+import OptionalByte as optional_scalars_OptionalByte
+import flatbuffers
+import std/options
+
+type ScalarStuff* = object of FlatObj
+func justI8*(self: ScalarStuff): int8 =
+ let o = self.tab.Offset(4)
+ if o != 0:
+ return Get[int8](self.tab, self.tab.Pos + o)
+ return 0
+func `justI8=`*(self: var ScalarStuff, n: int8): bool =
+ return self.tab.MutateSlot(4, n)
+func maybeI8*(self: ScalarStuff): Option[int8] =
+ let o = self.tab.Offset(6)
+ if o != 0:
+ return some(Get[int8](self.tab, self.tab.Pos + o))
+func `maybeI8=`*(self: var ScalarStuff, n: Option[int8]): bool =
+ return self.tab.MutateSlot(6, n)
+func defaultI8*(self: ScalarStuff): int8 =
+ let o = self.tab.Offset(8)
+ if o != 0:
+ return Get[int8](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultI8=`*(self: var ScalarStuff, n: int8): bool =
+ return self.tab.MutateSlot(8, n)
+func justU8*(self: ScalarStuff): uint8 =
+ let o = self.tab.Offset(10)
+ if o != 0:
+ return Get[uint8](self.tab, self.tab.Pos + o)
+ return 0
+func `justU8=`*(self: var ScalarStuff, n: uint8): bool =
+ return self.tab.MutateSlot(10, n)
+func maybeU8*(self: ScalarStuff): Option[uint8] =
+ let o = self.tab.Offset(12)
+ if o != 0:
+ return some(Get[uint8](self.tab, self.tab.Pos + o))
+func `maybeU8=`*(self: var ScalarStuff, n: Option[uint8]): bool =
+ return self.tab.MutateSlot(12, n)
+func defaultU8*(self: ScalarStuff): uint8 =
+ let o = self.tab.Offset(14)
+ if o != 0:
+ return Get[uint8](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultU8=`*(self: var ScalarStuff, n: uint8): bool =
+ return self.tab.MutateSlot(14, n)
+func justI16*(self: ScalarStuff): int16 =
+ let o = self.tab.Offset(16)
+ if o != 0:
+ return Get[int16](self.tab, self.tab.Pos + o)
+ return 0
+func `justI16=`*(self: var ScalarStuff, n: int16): bool =
+ return self.tab.MutateSlot(16, n)
+func maybeI16*(self: ScalarStuff): Option[int16] =
+ let o = self.tab.Offset(18)
+ if o != 0:
+ return some(Get[int16](self.tab, self.tab.Pos + o))
+func `maybeI16=`*(self: var ScalarStuff, n: Option[int16]): bool =
+ return self.tab.MutateSlot(18, n)
+func defaultI16*(self: ScalarStuff): int16 =
+ let o = self.tab.Offset(20)
+ if o != 0:
+ return Get[int16](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultI16=`*(self: var ScalarStuff, n: int16): bool =
+ return self.tab.MutateSlot(20, n)
+func justU16*(self: ScalarStuff): uint16 =
+ let o = self.tab.Offset(22)
+ if o != 0:
+ return Get[uint16](self.tab, self.tab.Pos + o)
+ return 0
+func `justU16=`*(self: var ScalarStuff, n: uint16): bool =
+ return self.tab.MutateSlot(22, n)
+func maybeU16*(self: ScalarStuff): Option[uint16] =
+ let o = self.tab.Offset(24)
+ if o != 0:
+ return some(Get[uint16](self.tab, self.tab.Pos + o))
+func `maybeU16=`*(self: var ScalarStuff, n: Option[uint16]): bool =
+ return self.tab.MutateSlot(24, n)
+func defaultU16*(self: ScalarStuff): uint16 =
+ let o = self.tab.Offset(26)
+ if o != 0:
+ return Get[uint16](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultU16=`*(self: var ScalarStuff, n: uint16): bool =
+ return self.tab.MutateSlot(26, n)
+func justI32*(self: ScalarStuff): int32 =
+ let o = self.tab.Offset(28)
+ if o != 0:
+ return Get[int32](self.tab, self.tab.Pos + o)
+ return 0
+func `justI32=`*(self: var ScalarStuff, n: int32): bool =
+ return self.tab.MutateSlot(28, n)
+func maybeI32*(self: ScalarStuff): Option[int32] =
+ let o = self.tab.Offset(30)
+ if o != 0:
+ return some(Get[int32](self.tab, self.tab.Pos + o))
+func `maybeI32=`*(self: var ScalarStuff, n: Option[int32]): bool =
+ return self.tab.MutateSlot(30, n)
+func defaultI32*(self: ScalarStuff): int32 =
+ let o = self.tab.Offset(32)
+ if o != 0:
+ return Get[int32](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultI32=`*(self: var ScalarStuff, n: int32): bool =
+ return self.tab.MutateSlot(32, n)
+func justU32*(self: ScalarStuff): uint32 =
+ let o = self.tab.Offset(34)
+ if o != 0:
+ return Get[uint32](self.tab, self.tab.Pos + o)
+ return 0
+func `justU32=`*(self: var ScalarStuff, n: uint32): bool =
+ return self.tab.MutateSlot(34, n)
+func maybeU32*(self: ScalarStuff): Option[uint32] =
+ let o = self.tab.Offset(36)
+ if o != 0:
+ return some(Get[uint32](self.tab, self.tab.Pos + o))
+func `maybeU32=`*(self: var ScalarStuff, n: Option[uint32]): bool =
+ return self.tab.MutateSlot(36, n)
+func defaultU32*(self: ScalarStuff): uint32 =
+ let o = self.tab.Offset(38)
+ if o != 0:
+ return Get[uint32](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultU32=`*(self: var ScalarStuff, n: uint32): bool =
+ return self.tab.MutateSlot(38, n)
+func justI64*(self: ScalarStuff): int64 =
+ let o = self.tab.Offset(40)
+ if o != 0:
+ return Get[int64](self.tab, self.tab.Pos + o)
+ return 0
+func `justI64=`*(self: var ScalarStuff, n: int64): bool =
+ return self.tab.MutateSlot(40, n)
+func maybeI64*(self: ScalarStuff): Option[int64] =
+ let o = self.tab.Offset(42)
+ if o != 0:
+ return some(Get[int64](self.tab, self.tab.Pos + o))
+func `maybeI64=`*(self: var ScalarStuff, n: Option[int64]): bool =
+ return self.tab.MutateSlot(42, n)
+func defaultI64*(self: ScalarStuff): int64 =
+ let o = self.tab.Offset(44)
+ if o != 0:
+ return Get[int64](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultI64=`*(self: var ScalarStuff, n: int64): bool =
+ return self.tab.MutateSlot(44, n)
+func justU64*(self: ScalarStuff): uint64 =
+ let o = self.tab.Offset(46)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 0
+func `justU64=`*(self: var ScalarStuff, n: uint64): bool =
+ return self.tab.MutateSlot(46, n)
+func maybeU64*(self: ScalarStuff): Option[uint64] =
+ let o = self.tab.Offset(48)
+ if o != 0:
+ return some(Get[uint64](self.tab, self.tab.Pos + o))
+func `maybeU64=`*(self: var ScalarStuff, n: Option[uint64]): bool =
+ return self.tab.MutateSlot(48, n)
+func defaultU64*(self: ScalarStuff): uint64 =
+ let o = self.tab.Offset(50)
+ if o != 0:
+ return Get[uint64](self.tab, self.tab.Pos + o)
+ return 42
+func `defaultU64=`*(self: var ScalarStuff, n: uint64): bool =
+ return self.tab.MutateSlot(50, n)
+func justF32*(self: ScalarStuff): float32 =
+ let o = self.tab.Offset(52)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return 0.0
+func `justF32=`*(self: var ScalarStuff, n: float32): bool =
+ return self.tab.MutateSlot(52, n)
+func maybeF32*(self: ScalarStuff): Option[float32] =
+ let o = self.tab.Offset(54)
+ if o != 0:
+ return some(Get[float32](self.tab, self.tab.Pos + o))
+func `maybeF32=`*(self: var ScalarStuff, n: Option[float32]): bool =
+ return self.tab.MutateSlot(54, n)
+func defaultF32*(self: ScalarStuff): float32 =
+ let o = self.tab.Offset(56)
+ if o != 0:
+ return Get[float32](self.tab, self.tab.Pos + o)
+ return 42.0
+func `defaultF32=`*(self: var ScalarStuff, n: float32): bool =
+ return self.tab.MutateSlot(56, n)
+func justF64*(self: ScalarStuff): float64 =
+ let o = self.tab.Offset(58)
+ if o != 0:
+ return Get[float64](self.tab, self.tab.Pos + o)
+ return 0.0
+func `justF64=`*(self: var ScalarStuff, n: float64): bool =
+ return self.tab.MutateSlot(58, n)
+func maybeF64*(self: ScalarStuff): Option[float64] =
+ let o = self.tab.Offset(60)
+ if o != 0:
+ return some(Get[float64](self.tab, self.tab.Pos + o))
+func `maybeF64=`*(self: var ScalarStuff, n: Option[float64]): bool =
+ return self.tab.MutateSlot(60, n)
+func defaultF64*(self: ScalarStuff): float64 =
+ let o = self.tab.Offset(62)
+ if o != 0:
+ return Get[float64](self.tab, self.tab.Pos + o)
+ return 42.0
+func `defaultF64=`*(self: var ScalarStuff, n: float64): bool =
+ return self.tab.MutateSlot(62, n)
+func justBool*(self: ScalarStuff): bool =
+ let o = self.tab.Offset(64)
+ if o != 0:
+ return Get[bool](self.tab, self.tab.Pos + o)
+ return false
+func `justBool=`*(self: var ScalarStuff, n: bool): bool =
+ return self.tab.MutateSlot(64, n)
+func maybeBool*(self: ScalarStuff): Option[bool] =
+ let o = self.tab.Offset(66)
+ if o != 0:
+ return some(Get[bool](self.tab, self.tab.Pos + o))
+func `maybeBool=`*(self: var ScalarStuff, n: Option[bool]): bool =
+ return self.tab.MutateSlot(66, n)
+func defaultBool*(self: ScalarStuff): bool =
+ let o = self.tab.Offset(68)
+ if o != 0:
+ return Get[bool](self.tab, self.tab.Pos + o)
+ return true
+func `defaultBool=`*(self: var ScalarStuff, n: bool): bool =
+ return self.tab.MutateSlot(68, n)
+func justEnum*(self: ScalarStuff): optional_scalars_OptionalByte.OptionalByte =
+ let o = self.tab.Offset(70)
+ if o != 0:
+ return optional_scalars_OptionalByte.OptionalByte(Get[int8](self.tab, self.tab.Pos + o))
+ return type(result)(0)
+func `justEnum=`*(self: var ScalarStuff, n: optional_scalars_OptionalByte.OptionalByte): bool =
+ return self.tab.MutateSlot(70, n)
+func maybeEnum*(self: ScalarStuff): Option[optional_scalars_OptionalByte.OptionalByte] =
+ let o = self.tab.Offset(72)
+ if o != 0:
+ return some(optional_scalars_OptionalByte.OptionalByte(Get[int8](self.tab, self.tab.Pos + o)))
+func `maybeEnum=`*(self: var ScalarStuff, n: Option[optional_scalars_OptionalByte.OptionalByte]): bool =
+ return self.tab.MutateSlot(72, n)
+func defaultEnum*(self: ScalarStuff): optional_scalars_OptionalByte.OptionalByte =
+ let o = self.tab.Offset(74)
+ if o != 0:
+ return optional_scalars_OptionalByte.OptionalByte(Get[int8](self.tab, self.tab.Pos + o))
+ return type(result)(1)
+func `defaultEnum=`*(self: var ScalarStuff, n: optional_scalars_OptionalByte.OptionalByte): bool =
+ return self.tab.MutateSlot(74, n)
+proc ScalarStuffStart*(builder: var Builder) =
+ builder.StartObject(36)
+proc ScalarStuffAddjustI8*(builder: var Builder, justI8: int8) =
+ builder.PrependSlot(0, justI8, default(int8))
+proc ScalarStuffAddmaybeI8*(builder: var Builder, maybeI8: int8) =
+ builder.PrependSlot(1, maybeI8, default(int8))
+proc ScalarStuffAdddefaultI8*(builder: var Builder, defaultI8: int8) =
+ builder.PrependSlot(2, defaultI8, default(int8))
+proc ScalarStuffAddjustU8*(builder: var Builder, justU8: uint8) =
+ builder.PrependSlot(3, justU8, default(uint8))
+proc ScalarStuffAddmaybeU8*(builder: var Builder, maybeU8: uint8) =
+ builder.PrependSlot(4, maybeU8, default(uint8))
+proc ScalarStuffAdddefaultU8*(builder: var Builder, defaultU8: uint8) =
+ builder.PrependSlot(5, defaultU8, default(uint8))
+proc ScalarStuffAddjustI16*(builder: var Builder, justI16: int16) =
+ builder.PrependSlot(6, justI16, default(int16))
+proc ScalarStuffAddmaybeI16*(builder: var Builder, maybeI16: int16) =
+ builder.PrependSlot(7, maybeI16, default(int16))
+proc ScalarStuffAdddefaultI16*(builder: var Builder, defaultI16: int16) =
+ builder.PrependSlot(8, defaultI16, default(int16))
+proc ScalarStuffAddjustU16*(builder: var Builder, justU16: uint16) =
+ builder.PrependSlot(9, justU16, default(uint16))
+proc ScalarStuffAddmaybeU16*(builder: var Builder, maybeU16: uint16) =
+ builder.PrependSlot(10, maybeU16, default(uint16))
+proc ScalarStuffAdddefaultU16*(builder: var Builder, defaultU16: uint16) =
+ builder.PrependSlot(11, defaultU16, default(uint16))
+proc ScalarStuffAddjustI32*(builder: var Builder, justI32: int32) =
+ builder.PrependSlot(12, justI32, default(int32))
+proc ScalarStuffAddmaybeI32*(builder: var Builder, maybeI32: int32) =
+ builder.PrependSlot(13, maybeI32, default(int32))
+proc ScalarStuffAdddefaultI32*(builder: var Builder, defaultI32: int32) =
+ builder.PrependSlot(14, defaultI32, default(int32))
+proc ScalarStuffAddjustU32*(builder: var Builder, justU32: uint32) =
+ builder.PrependSlot(15, justU32, default(uint32))
+proc ScalarStuffAddmaybeU32*(builder: var Builder, maybeU32: uint32) =
+ builder.PrependSlot(16, maybeU32, default(uint32))
+proc ScalarStuffAdddefaultU32*(builder: var Builder, defaultU32: uint32) =
+ builder.PrependSlot(17, defaultU32, default(uint32))
+proc ScalarStuffAddjustI64*(builder: var Builder, justI64: int64) =
+ builder.PrependSlot(18, justI64, default(int64))
+proc ScalarStuffAddmaybeI64*(builder: var Builder, maybeI64: int64) =
+ builder.PrependSlot(19, maybeI64, default(int64))
+proc ScalarStuffAdddefaultI64*(builder: var Builder, defaultI64: int64) =
+ builder.PrependSlot(20, defaultI64, default(int64))
+proc ScalarStuffAddjustU64*(builder: var Builder, justU64: uint64) =
+ builder.PrependSlot(21, justU64, default(uint64))
+proc ScalarStuffAddmaybeU64*(builder: var Builder, maybeU64: uint64) =
+ builder.PrependSlot(22, maybeU64, default(uint64))
+proc ScalarStuffAdddefaultU64*(builder: var Builder, defaultU64: uint64) =
+ builder.PrependSlot(23, defaultU64, default(uint64))
+proc ScalarStuffAddjustF32*(builder: var Builder, justF32: float32) =
+ builder.PrependSlot(24, justF32, default(float32))
+proc ScalarStuffAddmaybeF32*(builder: var Builder, maybeF32: float32) =
+ builder.PrependSlot(25, maybeF32, default(float32))
+proc ScalarStuffAdddefaultF32*(builder: var Builder, defaultF32: float32) =
+ builder.PrependSlot(26, defaultF32, default(float32))
+proc ScalarStuffAddjustF64*(builder: var Builder, justF64: float64) =
+ builder.PrependSlot(27, justF64, default(float64))
+proc ScalarStuffAddmaybeF64*(builder: var Builder, maybeF64: float64) =
+ builder.PrependSlot(28, maybeF64, default(float64))
+proc ScalarStuffAdddefaultF64*(builder: var Builder, defaultF64: float64) =
+ builder.PrependSlot(29, defaultF64, default(float64))
+proc ScalarStuffAddjustBool*(builder: var Builder, justBool: bool) =
+ builder.PrependSlot(30, justBool, default(bool))
+proc ScalarStuffAddmaybeBool*(builder: var Builder, maybeBool: bool) =
+ builder.PrependSlot(31, maybeBool, default(bool))
+proc ScalarStuffAdddefaultBool*(builder: var Builder, defaultBool: bool) =
+ builder.PrependSlot(32, defaultBool, default(bool))
+proc ScalarStuffAddjustEnum*(builder: var Builder, justEnum: int8) =
+ builder.PrependSlot(33, justEnum, default(int8))
+proc ScalarStuffAddmaybeEnum*(builder: var Builder, maybeEnum: int8) =
+ builder.PrependSlot(34, maybeEnum, default(int8))
+proc ScalarStuffAdddefaultEnum*(builder: var Builder, defaultEnum: int8) =
+ builder.PrependSlot(35, defaultEnum, default(int8))
+proc ScalarStuffEnd*(builder: var Builder): uoffset =
+ return builder.EndObject()
diff --git a/tests/optional_scalars/ScalarStuff.py b/tests/optional_scalars/ScalarStuff.py
index 4dea123..ca7c253 100644
--- a/tests/optional_scalars/ScalarStuff.py
+++ b/tests/optional_scalars/ScalarStuff.py
@@ -443,6 +443,11 @@
return cls.InitFromObj(scalarStuff)
@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, scalarStuff):
x = ScalarStuffT()
x._UnPack(scalarStuff)
diff --git a/tests/optional_scalars/optional_scalars/optional_byte_generated.rs b/tests/optional_scalars/optional_scalars/optional_byte_generated.rs
index dae1366..9cb47c6 100644
--- a/tests/optional_scalars/optional_scalars/optional_byte_generated.rs
+++ b/tests/optional_scalars/optional_scalars/optional_byte_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for OptionalByte {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for OptionalByte {
type Output = OptionalByte;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for OptionalByte {
+ type Scalar = i8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i8::from_le(self.0);
+ fn from_little_endian(v: i8) -> Self {
+ let b = i8::from_le(v);
Self(b)
}
}
diff --git a/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs b/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs
index e201cc0..8916932 100644
--- a/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs
+++ b/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for ScalarStuff<'a> {
type Inner = ScalarStuff<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -67,7 +67,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
ScalarStuff { _tab: table }
}
#[allow(unused_mut)]
@@ -194,147 +194,255 @@
#[inline]
pub fn just_i8(&self) -> i8 {
- self._tab.get::<i8>(ScalarStuff::VT_JUST_I8, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i8>(ScalarStuff::VT_JUST_I8, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_i8(&self) -> Option<i8> {
- self._tab.get::<i8>(ScalarStuff::VT_MAYBE_I8, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i8>(ScalarStuff::VT_MAYBE_I8, None)}
}
#[inline]
pub fn default_i8(&self) -> i8 {
- self._tab.get::<i8>(ScalarStuff::VT_DEFAULT_I8, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i8>(ScalarStuff::VT_DEFAULT_I8, Some(42)).unwrap()}
}
#[inline]
pub fn just_u8(&self) -> u8 {
- self._tab.get::<u8>(ScalarStuff::VT_JUST_U8, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u8>(ScalarStuff::VT_JUST_U8, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_u8(&self) -> Option<u8> {
- self._tab.get::<u8>(ScalarStuff::VT_MAYBE_U8, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u8>(ScalarStuff::VT_MAYBE_U8, None)}
}
#[inline]
pub fn default_u8(&self) -> u8 {
- self._tab.get::<u8>(ScalarStuff::VT_DEFAULT_U8, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u8>(ScalarStuff::VT_DEFAULT_U8, Some(42)).unwrap()}
}
#[inline]
pub fn just_i16(&self) -> i16 {
- self._tab.get::<i16>(ScalarStuff::VT_JUST_I16, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(ScalarStuff::VT_JUST_I16, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_i16(&self) -> Option<i16> {
- self._tab.get::<i16>(ScalarStuff::VT_MAYBE_I16, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(ScalarStuff::VT_MAYBE_I16, None)}
}
#[inline]
pub fn default_i16(&self) -> i16 {
- self._tab.get::<i16>(ScalarStuff::VT_DEFAULT_I16, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i16>(ScalarStuff::VT_DEFAULT_I16, Some(42)).unwrap()}
}
#[inline]
pub fn just_u16(&self) -> u16 {
- self._tab.get::<u16>(ScalarStuff::VT_JUST_U16, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(ScalarStuff::VT_JUST_U16, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_u16(&self) -> Option<u16> {
- self._tab.get::<u16>(ScalarStuff::VT_MAYBE_U16, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(ScalarStuff::VT_MAYBE_U16, None)}
}
#[inline]
pub fn default_u16(&self) -> u16 {
- self._tab.get::<u16>(ScalarStuff::VT_DEFAULT_U16, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u16>(ScalarStuff::VT_DEFAULT_U16, Some(42)).unwrap()}
}
#[inline]
pub fn just_i32(&self) -> i32 {
- self._tab.get::<i32>(ScalarStuff::VT_JUST_I32, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(ScalarStuff::VT_JUST_I32, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_i32(&self) -> Option<i32> {
- self._tab.get::<i32>(ScalarStuff::VT_MAYBE_I32, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(ScalarStuff::VT_MAYBE_I32, None)}
}
#[inline]
pub fn default_i32(&self) -> i32 {
- self._tab.get::<i32>(ScalarStuff::VT_DEFAULT_I32, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(ScalarStuff::VT_DEFAULT_I32, Some(42)).unwrap()}
}
#[inline]
pub fn just_u32(&self) -> u32 {
- self._tab.get::<u32>(ScalarStuff::VT_JUST_U32, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(ScalarStuff::VT_JUST_U32, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_u32(&self) -> Option<u32> {
- self._tab.get::<u32>(ScalarStuff::VT_MAYBE_U32, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(ScalarStuff::VT_MAYBE_U32, None)}
}
#[inline]
pub fn default_u32(&self) -> u32 {
- self._tab.get::<u32>(ScalarStuff::VT_DEFAULT_U32, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u32>(ScalarStuff::VT_DEFAULT_U32, Some(42)).unwrap()}
}
#[inline]
pub fn just_i64(&self) -> i64 {
- self._tab.get::<i64>(ScalarStuff::VT_JUST_I64, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(ScalarStuff::VT_JUST_I64, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_i64(&self) -> Option<i64> {
- self._tab.get::<i64>(ScalarStuff::VT_MAYBE_I64, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(ScalarStuff::VT_MAYBE_I64, None)}
}
#[inline]
pub fn default_i64(&self) -> i64 {
- self._tab.get::<i64>(ScalarStuff::VT_DEFAULT_I64, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i64>(ScalarStuff::VT_DEFAULT_I64, Some(42)).unwrap()}
}
#[inline]
pub fn just_u64(&self) -> u64 {
- self._tab.get::<u64>(ScalarStuff::VT_JUST_U64, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(ScalarStuff::VT_JUST_U64, Some(0)).unwrap()}
}
#[inline]
pub fn maybe_u64(&self) -> Option<u64> {
- self._tab.get::<u64>(ScalarStuff::VT_MAYBE_U64, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(ScalarStuff::VT_MAYBE_U64, None)}
}
#[inline]
pub fn default_u64(&self) -> u64 {
- self._tab.get::<u64>(ScalarStuff::VT_DEFAULT_U64, Some(42)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<u64>(ScalarStuff::VT_DEFAULT_U64, Some(42)).unwrap()}
}
#[inline]
pub fn just_f32(&self) -> f32 {
- self._tab.get::<f32>(ScalarStuff::VT_JUST_F32, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(ScalarStuff::VT_JUST_F32, Some(0.0)).unwrap()}
}
#[inline]
pub fn maybe_f32(&self) -> Option<f32> {
- self._tab.get::<f32>(ScalarStuff::VT_MAYBE_F32, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(ScalarStuff::VT_MAYBE_F32, None)}
}
#[inline]
pub fn default_f32(&self) -> f32 {
- self._tab.get::<f32>(ScalarStuff::VT_DEFAULT_F32, Some(42.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f32>(ScalarStuff::VT_DEFAULT_F32, Some(42.0)).unwrap()}
}
#[inline]
pub fn just_f64(&self) -> f64 {
- self._tab.get::<f64>(ScalarStuff::VT_JUST_F64, Some(0.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(ScalarStuff::VT_JUST_F64, Some(0.0)).unwrap()}
}
#[inline]
pub fn maybe_f64(&self) -> Option<f64> {
- self._tab.get::<f64>(ScalarStuff::VT_MAYBE_F64, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(ScalarStuff::VT_MAYBE_F64, None)}
}
#[inline]
pub fn default_f64(&self) -> f64 {
- self._tab.get::<f64>(ScalarStuff::VT_DEFAULT_F64, Some(42.0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<f64>(ScalarStuff::VT_DEFAULT_F64, Some(42.0)).unwrap()}
}
#[inline]
pub fn just_bool(&self) -> bool {
- self._tab.get::<bool>(ScalarStuff::VT_JUST_BOOL, Some(false)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<bool>(ScalarStuff::VT_JUST_BOOL, Some(false)).unwrap()}
}
#[inline]
pub fn maybe_bool(&self) -> Option<bool> {
- self._tab.get::<bool>(ScalarStuff::VT_MAYBE_BOOL, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<bool>(ScalarStuff::VT_MAYBE_BOOL, None)}
}
#[inline]
pub fn default_bool(&self) -> bool {
- self._tab.get::<bool>(ScalarStuff::VT_DEFAULT_BOOL, Some(true)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<bool>(ScalarStuff::VT_DEFAULT_BOOL, Some(true)).unwrap()}
}
#[inline]
pub fn just_enum(&self) -> OptionalByte {
- self._tab.get::<OptionalByte>(ScalarStuff::VT_JUST_ENUM, Some(OptionalByte::None)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<OptionalByte>(ScalarStuff::VT_JUST_ENUM, Some(OptionalByte::None)).unwrap()}
}
#[inline]
pub fn maybe_enum(&self) -> Option<OptionalByte> {
- self._tab.get::<OptionalByte>(ScalarStuff::VT_MAYBE_ENUM, None)
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<OptionalByte>(ScalarStuff::VT_MAYBE_ENUM, None)}
}
#[inline]
pub fn default_enum(&self) -> OptionalByte {
- self._tab.get::<OptionalByte>(ScalarStuff::VT_DEFAULT_ENUM, Some(OptionalByte::One)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<OptionalByte>(ScalarStuff::VT_DEFAULT_ENUM, Some(OptionalByte::One)).unwrap()}
}
}
@@ -837,18 +945,6 @@
}
}
#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_root_as_scalar_stuff<'a>(buf: &'a [u8]) -> ScalarStuff<'a> {
- unsafe { flatbuffers::root_unchecked::<ScalarStuff<'a>>(buf) }
-}
-
-#[inline]
-#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
-pub fn get_size_prefixed_root_as_scalar_stuff<'a>(buf: &'a [u8]) -> ScalarStuff<'a> {
- unsafe { flatbuffers::size_prefixed_root_unchecked::<ScalarStuff<'a>>(buf) }
-}
-
-#[inline]
/// Verifies that a buffer of bytes contains a `ScalarStuff`
/// and returns it.
/// Note that verification is still experimental and may not
diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h
index f71f98d..0beb792 100644
--- a/tests/optional_scalars_generated.h
+++ b/tests/optional_scalars_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
namespace optional_scalars {
diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp
index 1a43504..4d9e076 100644
--- a/tests/parser_test.cpp
+++ b/tests/parser_test.cpp
@@ -1,6 +1,7 @@
#include "parser_test.h"
#include <cmath>
+#include <limits>
#include <string>
#include "flatbuffers/idl.h"
diff --git a/tests/private_annotation_test/ab_generated.rs b/tests/private_annotation_test/ab_generated.rs
index 6ed8850..f224648 100644
--- a/tests/private_annotation_test/ab_generated.rs
+++ b/tests/private_annotation_test/ab_generated.rs
@@ -55,10 +55,8 @@
impl<'a> flatbuffers::Follow<'a> for AB {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<i8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
Self(b)
}
}
@@ -66,21 +64,21 @@
impl flatbuffers::Push for AB {
type Output = AB;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<i8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for AB {
+ type Scalar = i8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = i8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> i8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = i8::from_le(self.0);
+ fn from_little_endian(v: i8) -> Self {
+ let b = i8::from_le(v);
Self(b)
}
}
diff --git a/tests/private_annotation_test/annotations_generated.rs b/tests/private_annotation_test/annotations_generated.rs
index 7c5166b..c8b4925 100644
--- a/tests/private_annotation_test/annotations_generated.rs
+++ b/tests/private_annotation_test/annotations_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for Annotations<'a> {
type Inner = Annotations<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Annotations { _tab: table }
}
#[allow(unused_mut)]
@@ -54,7 +54,10 @@
#[inline]
pub fn value(&self) -> i32 {
- self._tab.get::<i32>(Annotations::VT_VALUE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(Annotations::VT_VALUE, Some(0)).unwrap()}
}
}
diff --git a/tests/private_annotation_test/any_generated.rs b/tests/private_annotation_test/any_generated.rs
index c3049a0..552c38f 100644
--- a/tests/private_annotation_test/any_generated.rs
+++ b/tests/private_annotation_test/any_generated.rs
@@ -59,10 +59,8 @@
impl<'a> flatbuffers::Follow<'a> for Any {
type Inner = Self;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- let b = unsafe {
- flatbuffers::read_scalar_at::<u8>(buf, loc)
- };
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
Self(b)
}
}
@@ -70,21 +68,21 @@
impl flatbuffers::Push for Any {
type Output = Any;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- unsafe { flatbuffers::emplace_scalar::<u8>(dst, self.0); }
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ flatbuffers::emplace_scalar::<u8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for Any {
+ type Scalar = u8;
#[inline]
- fn to_little_endian(self) -> Self {
- let b = u8::to_le(self.0);
- Self(b)
+ fn to_little_endian(self) -> u8 {
+ self.0.to_le()
}
#[inline]
#[allow(clippy::wrong_self_convention)]
- fn from_little_endian(self) -> Self {
- let b = u8::from_le(self.0);
+ fn from_little_endian(v: u8) -> Self {
+ let b = u8::from_le(v);
Self(b)
}
}
diff --git a/tests/private_annotation_test/game_generated.rs b/tests/private_annotation_test/game_generated.rs
index e696611..9ded51f 100644
--- a/tests/private_annotation_test/game_generated.rs
+++ b/tests/private_annotation_test/game_generated.rs
@@ -19,8 +19,8 @@
impl<'a> flatbuffers::Follow<'a> for Game<'a> {
type Inner = Game<'a>;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
- Self { _tab: flatbuffers::Table { buf, loc } }
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
@@ -32,7 +32,7 @@
}
#[inline]
- pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
+ pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
Game { _tab: table }
}
#[allow(unused_mut)]
@@ -54,7 +54,10 @@
#[inline]
pub fn value(&self) -> i32 {
- self._tab.get::<i32>(Game::VT_VALUE, Some(0)).unwrap()
+ // Safety:
+ // Created from valid Table for this object
+ // which contains a valid value in this slot
+ unsafe { self._tab.get::<i32>(Game::VT_VALUE, Some(0)).unwrap()}
}
}
diff --git a/tests/private_annotation_test/object_generated.rs b/tests/private_annotation_test/object_generated.rs
index 64419a9..cb93412 100644
--- a/tests/private_annotation_test/object_generated.rs
+++ b/tests/private_annotation_test/object_generated.rs
@@ -27,39 +27,25 @@
}
impl flatbuffers::SimpleToVerifyInSlice for Object {}
-impl flatbuffers::SafeSliceAccess for Object {}
impl<'a> flatbuffers::Follow<'a> for Object {
type Inner = &'a Object;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a Object>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a Object {
type Inner = &'a Object;
#[inline]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<Object>(buf, loc)
}
}
impl<'b> flatbuffers::Push for Object {
type Output = Object;
#[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(self as *const Object as *const u8, Self::size())
- };
- dst.copy_from_slice(src);
- }
-}
-impl<'b> flatbuffers::Push for &'b Object {
- type Output = Object;
-
- #[inline]
- fn push(&self, dst: &mut [u8], _rest: &[u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const Object as *const u8, Self::size())
- };
+ unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(self as *const Object as *const u8, Self::size());
dst.copy_from_slice(src);
}
}
@@ -89,24 +75,30 @@
}
pub fn value(&self) -> i32 {
- let mut mem = core::mem::MaybeUninit::<i32>::uninit();
- unsafe {
+ let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
+ EndianScalar::from_little_endian(unsafe {
core::ptr::copy_nonoverlapping(
self.0[0..].as_ptr(),
mem.as_mut_ptr() as *mut u8,
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
mem.assume_init()
- }.from_little_endian()
+ })
}
pub fn set_value(&mut self, x: i32) {
let x_le = x.to_little_endian();
+ // Safety:
+ // Created from a valid Table for this object
+ // Which contains a valid value in this slot
unsafe {
core::ptr::copy_nonoverlapping(
- &x_le as *const i32 as *const u8,
+ &x_le as *const _ as *const u8,
self.0[0..].as_mut_ptr(),
- core::mem::size_of::<i32>(),
+ core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
);
}
}
diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp
index 7281c2c..1d1c98a 100644
--- a/tests/proto_test.cpp
+++ b/tests/proto_test.cpp
@@ -201,4 +201,4 @@
}
} // namespace tests
-} // namespace flatbuffers
\ No newline at end of file
+} // namespace flatbuffers
diff --git a/tests/prototest/GenerateProtoGoldens.sh b/tests/prototest/GenerateProtoGoldens.sh
new file mode 100755
index 0000000..8cf24f9
--- /dev/null
+++ b/tests/prototest/GenerateProtoGoldens.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# Copyright 2022 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pushd "$(dirname $0)" >/dev/null
+
+./../../flatc --proto test.proto && mv test.fbs test_include.golden
+./../../flatc --proto --gen-all test.proto && mv test.fbs test.golden
+./../../flatc --proto --oneof-union test.proto && mv test.fbs test_union_include.golden
+./../../flatc --proto --gen-all --oneof-union test.proto && mv test.fbs test_union.golden
+./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix test.proto && mv test.fbs test_suffix.golden
+./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix --oneof-union test.proto && mv test.fbs test_union_suffix.golden
diff --git a/tests/prototest/test.golden b/tests/prototest/test.golden
index 949a003..4484b49 100644
--- a/tests/prototest/test.golden
+++ b/tests/prototest/test.golden
@@ -54,6 +54,8 @@
u:float = +inf;
v:float = +inf;
w:float = -inf;
+ grades:[proto.test.ProtoMessage_.GradesEntry];
+ other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
}
namespace proto.test.ProtoMessage_;
@@ -73,3 +75,13 @@
t:proto.test.ProtoMessage_.OtherMessage;
}
+table GradesEntry {
+ key:string (key);
+ value:float;
+}
+
+table OtherMessageMapEntry {
+ key:string (key);
+ value:proto.test.ProtoMessage_.OtherMessage;
+}
+
diff --git a/tests/prototest/test.proto b/tests/prototest/test.proto
index 71ec8d5..98c92f8 100644
--- a/tests/prototest/test.proto
+++ b/tests/prototest/test.proto
@@ -71,4 +71,7 @@
optional float u = 34 [default = inf];
optional float v = 35 [default = +inf];
optional float w = 36 [default = -inf];
+
+ map<string, float> grades = 37;
+ map<string, OtherMessage> other_message_map = 38;
}
diff --git a/tests/prototest/test_include.golden b/tests/prototest/test_include.golden
index b98de44..791f7f7 100644
--- a/tests/prototest/test_include.golden
+++ b/tests/prototest/test_include.golden
@@ -52,6 +52,8 @@
u:float = +inf;
v:float = +inf;
w:float = -inf;
+ grades:[proto.test.ProtoMessage_.GradesEntry];
+ other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
}
namespace proto.test.ProtoMessage_;
@@ -71,3 +73,13 @@
t:proto.test.ProtoMessage_.OtherMessage;
}
+table GradesEntry {
+ key:string (key);
+ value:float;
+}
+
+table OtherMessageMapEntry {
+ key:string (key);
+ value:proto.test.ProtoMessage_.OtherMessage;
+}
+
diff --git a/tests/prototest/test_suffix.golden b/tests/prototest/test_suffix.golden
index 4ab2146..b76acb7 100644
--- a/tests/prototest/test_suffix.golden
+++ b/tests/prototest/test_suffix.golden
@@ -54,6 +54,8 @@
u:float = +inf;
v:float = +inf;
w:float = -inf;
+ grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry];
+ other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry];
}
namespace proto.test.test_namespace_suffix.ProtoMessage_;
@@ -73,3 +75,13 @@
t:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage;
}
+table GradesEntry {
+ key:string (key);
+ value:float;
+}
+
+table OtherMessageMapEntry {
+ key:string (key);
+ value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage;
+}
+
diff --git a/tests/prototest/test_union.golden b/tests/prototest/test_union.golden
index 241f349..15d365b 100644
--- a/tests/prototest/test_union.golden
+++ b/tests/prototest/test_union.golden
@@ -64,6 +64,8 @@
u:float = +inf;
v:float = +inf;
w:float = -inf;
+ grades:[proto.test.ProtoMessage_.GradesEntry];
+ other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
}
namespace proto.test.ProtoMessage_;
@@ -75,3 +77,13 @@
foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum;
}
+table GradesEntry {
+ key:string (key);
+ value:float;
+}
+
+table OtherMessageMapEntry {
+ key:string (key);
+ value:proto.test.ProtoMessage_.OtherMessage;
+}
+
diff --git a/tests/prototest/test_union_include.golden b/tests/prototest/test_union_include.golden
index 1fdb2ac..ce36463 100644
--- a/tests/prototest/test_union_include.golden
+++ b/tests/prototest/test_union_include.golden
@@ -62,6 +62,8 @@
u:float = +inf;
v:float = +inf;
w:float = -inf;
+ grades:[proto.test.ProtoMessage_.GradesEntry];
+ other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
}
namespace proto.test.ProtoMessage_;
@@ -73,3 +75,13 @@
foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum;
}
+table GradesEntry {
+ key:string (key);
+ value:float;
+}
+
+table OtherMessageMapEntry {
+ key:string (key);
+ value:proto.test.ProtoMessage_.OtherMessage;
+}
+
diff --git a/tests/prototest/test_union_suffix.golden b/tests/prototest/test_union_suffix.golden
index 2278edd..0c0c5e5 100644
--- a/tests/prototest/test_union_suffix.golden
+++ b/tests/prototest/test_union_suffix.golden
@@ -64,6 +64,8 @@
u:float = +inf;
v:float = +inf;
w:float = -inf;
+ grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry];
+ other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry];
}
namespace proto.test.test_namespace_suffix.ProtoMessage_;
@@ -75,3 +77,13 @@
foo_bar_baz:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_.ProtoEnum;
}
+table GradesEntry {
+ key:string (key);
+ value:float;
+}
+
+table OtherMessageMapEntry {
+ key:string (key);
+ value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage;
+}
+
diff --git a/tests/py_test.py b/tests/py_test.py
index 5e3c547..fe3d10e 100644
--- a/tests/py_test.py
+++ b/tests/py_test.py
@@ -47,6 +47,11 @@
import MyGame.Example.ArrayStruct # refers to generated code
import MyGame.Example.NestedStruct # refers to generated code
import MyGame.Example.TestEnum # refers to generated code
+import MyGame.Example.NestedUnion.NestedUnionTest # refers to generated code
+import MyGame.Example.NestedUnion.Vec3 # refers to generated code
+import MyGame.Example.NestedUnion.Any # refers to generated code
+import MyGame.Example.NestedUnion.Test # refers to generated code
+import MyGame.Example.NestedUnion.Color # refers to generated code
import monster_test_generated # the one-file version
import optional_scalars
import optional_scalars.ScalarStuff
@@ -978,6 +983,48 @@
b.EndVector()
self.assertBuilderEquals(b, [2, 0, 0, 0, 0xBA, 0xDC, 0xCD, 0xAB])
+ def test_create_ascii_shared_string(self):
+ b = flatbuffers.Builder(0)
+ b.CreateSharedString(u'foo', encoding='ascii')
+ b.CreateSharedString(u'foo', encoding='ascii')
+
+ # 0-terminated, no pad:
+ self.assertBuilderEquals(b, [3, 0, 0, 0, 'f', 'o', 'o', 0])
+ b.CreateSharedString(u'moop', encoding='ascii')
+ b.CreateSharedString(u'moop', encoding='ascii')
+ # 0-terminated, 3-byte pad:
+ self.assertBuilderEquals(b, [
+ 4, 0, 0, 0, 'm', 'o', 'o', 'p', 0, 0, 0, 0, 3, 0, 0, 0, 'f', 'o', 'o', 0
+ ])
+
+ def test_create_utf8_shared_string(self):
+ b = flatbuffers.Builder(0)
+ b.CreateSharedString(u'Цлїςσδε')
+ b.CreateSharedString(u'Цлїςσδε')
+ self.assertBuilderEquals(b, '\x0e\x00\x00\x00\xd0\xa6\xd0\xbb\xd1\x97' \
+ '\xcf\x82\xcf\x83\xce\xb4\xce\xb5\x00\x00')
+
+ b.CreateSharedString(u'フムアムカモケモ')
+ b.CreateSharedString(u'フムアムカモケモ')
+ self.assertBuilderEquals(b, '\x18\x00\x00\x00\xef\xbe\x8c\xef\xbe\x91' \
+ '\xef\xbd\xb1\xef\xbe\x91\xef\xbd\xb6\xef\xbe\x93\xef\xbd\xb9\xef' \
+ '\xbe\x93\x00\x00\x00\x00\x0e\x00\x00\x00\xd0\xa6\xd0\xbb\xd1\x97' \
+ '\xcf\x82\xcf\x83\xce\xb4\xce\xb5\x00\x00')
+
+ def test_create_arbitrary_shared_string(self):
+ b = flatbuffers.Builder(0)
+ s = '\x01\x02\x03'
+ b.CreateSharedString(s) # Default encoding is utf-8.
+ b.CreateSharedString(s)
+ # 0-terminated, no pad:
+ self.assertBuilderEquals(b, [3, 0, 0, 0, 1, 2, 3, 0])
+ s2 = '\x04\x05\x06\x07'
+ b.CreateSharedString(s2) # Default encoding is utf-8.
+ b.CreateSharedString(s2)
+ # 0-terminated, 3-byte pad:
+ self.assertBuilderEquals(
+ b, [4, 0, 0, 0, 4, 5, 6, 7, 0, 0, 0, 0, 3, 0, 0, 0, 1, 2, 3, 0])
+
def test_create_ascii_string(self):
b = flatbuffers.Builder(0)
b.CreateString(u'foo', encoding='ascii')
@@ -2583,6 +2630,13 @@
assertRaises(self, lambda: b.PrependUOffsetTRelative(1),
flatbuffers.builder.OffsetArithmeticError)
+ def test_create_shared_string_is_nested_error(self):
+ b = flatbuffers.Builder(0)
+ b.StartObject(0)
+ s = 'test1'
+ assertRaises(self, lambda: b.CreateSharedString(s),
+ flatbuffers.builder.IsNestedError)
+
def test_create_string_is_nested_error(self):
b = flatbuffers.Builder(0)
b.StartObject(0)
@@ -2642,22 +2696,84 @@
self.assertEqual(table.A().B(), \
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
self.assertEqual(table.A().C(), 1)
- self.assertEqual(table.A().D(nested, 0).A(), [1, 2])
- self.assertEqual(table.A().D(nested, 1).A(), [3, 4])
- self.assertEqual(table.A().D(nested, 0).B(), \
+ self.assertEqual(table.A().D(0).A(), [1, 2])
+ self.assertEqual(table.A().D(1).A(), [3, 4])
+ self.assertEqual(table.A().D(0).B(), \
MyGame.Example.TestEnum.TestEnum.B)
- self.assertEqual(table.A().D(nested, 1).B(), \
+ self.assertEqual(table.A().D(1).B(), \
MyGame.Example.TestEnum.TestEnum.C)
- self.assertEqual(table.A().D(nested, 0).C(), \
+ self.assertEqual(table.A().D(0).C(), \
[MyGame.Example.TestEnum.TestEnum.A, \
MyGame.Example.TestEnum.TestEnum.B])
- self.assertEqual(table.A().D(nested, 1).C(), \
+ self.assertEqual(table.A().D(1).C(), \
[MyGame.Example.TestEnum.TestEnum.C, \
MyGame.Example.TestEnum.TestEnum.B])
- self.assertEqual(table.A().D(nested, 0).D(), [-1, 1])
- self.assertEqual(table.A().D(nested, 1).D(), [-2, 2])
+ self.assertEqual(table.A().D(0).D(), [-1, 1])
+ self.assertEqual(table.A().D(1).D(), [-2, 2])
self.assertEqual(table.A().E(), 2)
self.assertEqual(table.A().F(), [-1, 1])
+ self.assertEqual(table.A().D(0).D(0), -1)
+ self.assertEqual(table.A().D(0).D(1), 1)
+ self.assertEqual(table.A().D(1).D(0), -2)
+ self.assertEqual(table.A().D(1).D(1), 2)
+
+class TestNestedUnionTables(unittest.TestCase):
+
+ def test_nested_union_tables(self):
+ nestUnion = MyGame.Example.NestedUnion.NestedUnionTest.NestedUnionTestT()
+ nestUnion.name = b"testUnion1"
+ nestUnion.id = 1
+ nestUnion.data = MyGame.Example.NestedUnion.Vec3.Vec3T()
+ nestUnion.dataType = MyGame.Example.NestedUnion.Any.Any.Vec3
+ nestUnion.data.x = 4.278975356
+ nestUnion.data.y = 5.32
+ nestUnion.data.z = -6.464
+ nestUnion.data.test1 = 0.9
+ nestUnion.data.test2 = MyGame.Example.NestedUnion.Color.Color.Red
+ nestUnion.data.test3 = MyGame.Example.NestedUnion.Test.TestT()
+ nestUnion.data.test3.a = 5
+ nestUnion.data.test3.b = 2
+
+ b = flatbuffers.Builder(0)
+ b.Finish(nestUnion.Pack(b))
+
+ nestUnionDecode = MyGame.Example.NestedUnion.NestedUnionTest.NestedUnionTest.GetRootAs(b.Bytes, b.Head())
+ nestUnionDecodeT = MyGame.Example.NestedUnion.NestedUnionTest.NestedUnionTestT.InitFromObj(nestUnionDecode)
+ self.assertEqual(nestUnionDecodeT.name, nestUnion.name)
+ self.assertEqual(nestUnionDecodeT.id, nestUnion.id)
+ self.assertEqual(nestUnionDecodeT.dataType, nestUnion.dataType)
+ self.assertEqual(nestUnionDecodeT.data.x, nestUnion.data.x)
+ self.assertEqual(nestUnionDecodeT.data.y, nestUnion.data.y)
+ self.assertEqual(nestUnionDecodeT.data.z, nestUnion.data.z)
+ self.assertEqual(nestUnionDecodeT.data.test1, nestUnion.data.test1)
+ self.assertEqual(nestUnionDecodeT.data.test2, nestUnion.data.test2)
+ self.assertEqual(nestUnionDecodeT.data.test3.a, nestUnion.data.test3.a)
+ self.assertEqual(nestUnionDecodeT.data.test3.b, nestUnion.data.test3.b)
+
+ nestUnionDecodeTFromBuf = MyGame.Example.NestedUnion.NestedUnionTest.NestedUnionTestT.InitFromPackedBuf(b.Bytes, b.Head())
+ self.assertEqual(nestUnionDecodeTFromBuf.name, nestUnion.name)
+ self.assertEqual(nestUnionDecodeTFromBuf.id, nestUnion.id)
+ self.assertEqual(nestUnionDecodeTFromBuf.dataType, nestUnion.dataType)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.x, nestUnion.data.x)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.y, nestUnion.data.y)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.z, nestUnion.data.z)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.test1, nestUnion.data.test1)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.test2, nestUnion.data.test2)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.test3.a, nestUnion.data.test3.a)
+ self.assertEqual(nestUnionDecodeTFromBuf.data.test3.b, nestUnion.data.test3.b)
+
+
+ nestUnionDecodeTFromBuf2 = MyGame.Example.NestedUnion.NestedUnionTest.NestedUnionTestT.InitFromPackedBuf(b.Output())
+ self.assertEqual(nestUnionDecodeTFromBuf2.name, nestUnion.name)
+ self.assertEqual(nestUnionDecodeTFromBuf2.id, nestUnion.id)
+ self.assertEqual(nestUnionDecodeTFromBuf2.dataType, nestUnion.dataType)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.x, nestUnion.data.x)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.y, nestUnion.data.y)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.z, nestUnion.data.z)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.test1, nestUnion.data.test1)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.test2, nestUnion.data.test2)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.test3.a, nestUnion.data.test3.a)
+ self.assertEqual(nestUnionDecodeTFromBuf2.data.test3.b, nestUnion.data.test3.b)
def CheckAgainstGoldDataGo():
diff --git a/tests/reflection_test.cpp b/tests/reflection_test.cpp
index b48bd81..9f92689 100644
--- a/tests/reflection_test.cpp
+++ b/tests/reflection_test.cpp
@@ -266,10 +266,14 @@
"}, "
"{ name: \"Wilma\" } ], "
// TODO(wvo): should really print this nested buffer correctly.
- "testnestedflatbuffer: [ 20, 0, 0, 0, 77, 79, 78, 83, 12, 0, 12, 0, 0, "
- "0, "
- "4, 0, 6, 0, 8, 0, 12, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 13, 0, 0, 0, 78, "
- "101, 115, 116, 101, 100, 77, 111, 110, 115, 116, 101, 114, 0, 0, 0 ], "
+ "testnestedflatbuffer: [ 124, 0, 0, 0, 77, 79, 78, 83, 0, 0, 114, 0, 16, "
+ "0, 0, 0, 4, 0, 6, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
+ "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
+ "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
+ "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
+ "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 114, 0, 0, 0, 0, 0, 0, 0, "
+ "8, 0, 0, 0, 0, 0, 192, 127, 13, 0, 0, 0, 78, 101, 115, 116, 101, 100, "
+ "77, 111, 110, 115, 116, 101, 114, 0, 0, 0 ], "
"testarrayofstring2: [ \"jane\", \"mary\" ], "
"testarrayofsortedstruct: [ { id: 0, distance: 0 }, "
"{ id: 2, distance: 20 }, { id: 3, distance: 30 }, "
@@ -277,7 +281,8 @@
"flex: [ 210, 4, 5, 2 ], "
"test5: [ { a: 10, b: 20 }, { a: 30, b: 40 } ], "
"vector_of_enums: [ Blue, Green ], "
- "scalar_key_sorted_tables: [ { id: \"miss\" } ] "
+ "scalar_key_sorted_tables: [ { id: \"miss\" } ], "
+ "nan_default: nan "
"}");
Test test(16, 32);
@@ -317,4 +322,4 @@
}
} // namespace tests
-} // namespace flatbuffers
\ No newline at end of file
+} // namespace flatbuffers
diff --git a/tests/rust_no_std_compilation_test/.cargo/config.toml b/tests/rust_no_std_compilation_test/.cargo/config.toml
new file mode 100644
index 0000000..4fc6b9a
--- /dev/null
+++ b/tests/rust_no_std_compilation_test/.cargo/config.toml
@@ -0,0 +1,5 @@
+[build]
+target = "thumbv7m-none-eabi"
+
+[unstable]
+build-std = ["core", "alloc"]
diff --git a/tests/rust_no_std_compilation_test/Cargo.toml b/tests/rust_no_std_compilation_test/Cargo.toml
new file mode 100644
index 0000000..86e650a
--- /dev/null
+++ b/tests/rust_no_std_compilation_test/Cargo.toml
@@ -0,0 +1,13 @@
+[package]
+name = "rust_test_no_std_compilation"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+flatbuffers = { path = "../../rust/flatbuffers", default-features = false }
+
+[profile.dev]
+panic = "abort"
+
+[profile.release]
+panic = "abort"
diff --git a/tests/rust_no_std_compilation_test/src/main.rs b/tests/rust_no_std_compilation_test/src/main.rs
new file mode 100644
index 0000000..0430599
--- /dev/null
+++ b/tests/rust_no_std_compilation_test/src/main.rs
@@ -0,0 +1,34 @@
+#![no_std]
+#![no_main]
+#![feature(default_alloc_error_handler)]
+
+// Include flatbuffers purely to check that it compiles in a no_std binary
+#[allow(unused_imports)]
+use flatbuffers;
+
+// The rest is just no_std boilerplate
+
+use core::alloc::{GlobalAlloc, Layout};
+
+struct NullAllocator;
+unsafe impl GlobalAlloc for NullAllocator {
+ unsafe fn alloc(&self, _lt: Layout) -> *mut u8 {
+ core::ptr::null_mut()
+ }
+ unsafe fn dealloc(&self, _ptr: *mut u8, _lt: Layout) {
+ panic!("won't deallocate: we never allocated!");
+ }
+}
+
+#[global_allocator]
+static A: NullAllocator = NullAllocator;
+
+#[panic_handler]
+fn panic(_info: &core::panic::PanicInfo) -> ! {
+ loop {}
+}
+
+#[no_mangle]
+pub extern "C" fn main(_argc: i32, _argv: *const *const u8) -> i32 {
+ 0
+}
diff --git a/tests/rust_serialize_test/src/main.rs b/tests/rust_serialize_test/src/main.rs
index d67cc20..e6bdce6 100644
--- a/tests/rust_serialize_test/src/main.rs
+++ b/tests/rust_serialize_test/src/main.rs
@@ -36,8 +36,8 @@
)
.as_union_value(),
),
- inventory: Some(builder.create_vector_direct(&[0u8, 1, 2, 3, 4][..])),
- test4: Some(builder.create_vector_direct(&[
+ inventory: Some(builder.create_vector(&[0u8, 1, 2, 3, 4])),
+ test4: Some(builder.create_vector(&[
my_game::example::Test::new(10, 20),
my_game::example::Test::new(30, 40),
])),
diff --git a/tests/rust_usage_test/Cargo.toml b/tests/rust_usage_test/Cargo.toml
index d5731e7..5b7152b 100644
--- a/tests/rust_usage_test/Cargo.toml
+++ b/tests/rust_usage_test/Cargo.toml
@@ -16,7 +16,7 @@
[features]
default = ["flatbuffers/default"]
-no_std = ["flatbuffers/no_std", "libc_alloc"]
+no_std = ["libc_alloc"]
[[bin]]
name = "monster_example"
diff --git a/tests/rust_usage_test/benches/flatbuffers_benchmarks.rs b/tests/rust_usage_test/benches/flatbuffers_benchmarks.rs
index 7d72501..3ab3b56 100644
--- a/tests/rust_usage_test/benches/flatbuffers_benchmarks.rs
+++ b/tests/rust_usage_test/benches/flatbuffers_benchmarks.rs
@@ -86,8 +86,8 @@
let mon = {
let name = builder.create_string("MyMonster");
let fred_name = builder.create_string("Fred");
- let inventory = builder.create_vector_direct(&[0u8, 1, 2, 3, 4]);
- let test4 = builder.create_vector_direct(&[
+ let inventory = builder.create_vector(&[0u8, 1, 2, 3, 4]);
+ let test4 = builder.create_vector(&[
my_game::example::Test::new(10, 20),
my_game::example::Test::new(30, 40),
]);
@@ -156,7 +156,7 @@
blackbox(pos_test3.b());
blackbox(m.test_type());
let table2 = m.test().unwrap();
- let monster2 = my_game::example::Monster::init_from_table(table2);
+ let monster2 = unsafe { my_game::example::Monster::init_from_table(table2) };
blackbox(monster2.name());
blackbox(m.inventory());
blackbox(m.test4());
@@ -228,7 +228,7 @@
let mut i = 0;
bench.iter(|| {
- builder.create_vector_direct(v);
+ builder.create_vector(v);
i += 1;
if i == 10000 {
builder.reset();
diff --git a/tests/rust_usage_test/bin/flatbuffers_alloc_check.rs b/tests/rust_usage_test/bin/flatbuffers_alloc_check.rs
index 418783c..8a77c0e 100644
--- a/tests/rust_usage_test/bin/flatbuffers_alloc_check.rs
+++ b/tests/rust_usage_test/bin/flatbuffers_alloc_check.rs
@@ -3,6 +3,7 @@
// global variable).
use std::alloc::{GlobalAlloc, Layout, System};
+
static mut N_ALLOCS: usize = 0;
struct TrackingAllocator;
@@ -12,6 +13,7 @@
unsafe { N_ALLOCS }
}
}
+
unsafe impl GlobalAlloc for TrackingAllocator {
unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
N_ALLOCS += 1;
@@ -28,31 +30,34 @@
// import the flatbuffers generated code:
extern crate flatbuffers;
-#[allow(dead_code, unused_imports)]
+
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../include_test1/mod.rs"]
pub mod include_test1_generated;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../include_test2/mod.rs"]
pub mod include_test2_generated;
-#[allow(dead_code, unused_imports, clippy::approx_constant)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../monster_test/mod.rs"]
mod monster_test_generated;
+
pub use monster_test_generated::my_game;
// verbatim from the test suite:
fn create_serialized_example_with_generated_code(builder: &mut flatbuffers::FlatBufferBuilder) {
let mon = {
- let _ = builder.create_vector_of_strings(&[
- "these",
- "unused",
- "strings",
- "check",
- "the",
- "create_vector_of_strings",
- "function",
- ]);
+ let strings = [
+ builder.create_string("these"),
+ builder.create_string("unused"),
+ builder.create_string("strings"),
+ builder.create_string("check"),
+ builder.create_string("the"),
+ builder.create_string("create_vector_of_strings"),
+ builder.create_string("function")
+ ];
+ let _ = builder.create_vector(&strings);
let s0 = builder.create_string("test1");
let s1 = builder.create_string("test2");
@@ -83,10 +88,10 @@
..Default::default()
},
)
- .as_union_value(),
+ .as_union_value(),
),
- inventory: Some(builder.create_vector_direct(&[0u8, 1, 2, 3, 4][..])),
- test4: Some(builder.create_vector_direct(&[
+ inventory: Some(builder.create_vector(&[0u8, 1, 2, 3, 4])),
+ test4: Some(builder.create_vector(&[
my_game::example::Test::new(10, 20),
my_game::example::Test::new(30, 40),
])),
@@ -151,7 +156,7 @@
assert_eq!(pos_test3.b(), 6i8);
assert_eq!(m.test_type(), my_game::example::Any::Monster);
let table2 = m.test().unwrap();
- let m2 = my_game::example::Monster::init_from_table(table2);
+ let m2 = unsafe { my_game::example::Monster::init_from_table(table2) };
assert_eq!(m2.name(), "Fred");
@@ -162,10 +167,10 @@
let test4 = m.test4().unwrap();
assert_eq!(test4.len(), 2);
assert_eq!(
- i32::from(test4[0].a())
- + i32::from(test4[1].a())
- + i32::from(test4[0].b())
- + i32::from(test4[1].b()),
+ i32::from(test4.get(0).a())
+ + i32::from(test4.get(1).a())
+ + i32::from(test4.get(0).b())
+ + i32::from(test4.get(1).b()),
100
);
diff --git a/tests/rust_usage_test/bin/monster_example.rs b/tests/rust_usage_test/bin/monster_example.rs
index 17ce0e0..f50003f 100644
--- a/tests/rust_usage_test/bin/monster_example.rs
+++ b/tests/rust_usage_test/bin/monster_example.rs
@@ -1,5 +1,7 @@
+#![allow(clippy::derivable_impls, clippy::all)]
extern crate flatbuffers;
+
#[allow(dead_code, unused_imports)]
#[path = "../../include_test1/mod.rs"]
pub mod include_test1_generated;
diff --git a/tests/rust_usage_test/outdir/build.rs b/tests/rust_usage_test/outdir/build.rs
index 0462828..efd036b 100644
--- a/tests/rust_usage_test/outdir/build.rs
+++ b/tests/rust_usage_test/outdir/build.rs
@@ -32,6 +32,7 @@
.arg("-o")
.arg(&out_dir)
.arg("--rust")
+ .arg("--rust-module-root-file")
.arg(&sample_schema)
.output()
.expect("Failed to generate file");
diff --git a/tests/rust_usage_test/tests/arrays_test.rs b/tests/rust_usage_test/tests/arrays_test.rs
index e92e862..1b4cc64 100644
--- a/tests/rust_usage_test/tests/arrays_test.rs
+++ b/tests/rust_usage_test/tests/arrays_test.rs
@@ -6,14 +6,18 @@
extern crate alloc;
extern crate array_init;
+
#[allow(dead_code, unused_imports)]
#[path = "../../arrays_test/mod.rs"]
mod arrays_test_generated;
+
use alloc::format;
use core::fmt::Debug;
use crate::arrays_test_generated::my_game::example::*;
+
extern crate quickcheck;
+
use array_init::array_init;
use core::mem::size_of;
use quickcheck::{Arbitrary, Gen};
@@ -60,6 +64,7 @@
} else {
array_table_buffer_has_identifier(bytes)
};
+
assert_eq!(correct, true);
}
@@ -175,7 +180,7 @@
a: [0, 0],
b: TestEnum::default(),
c: [TestEnum::default(), TestEnum::default()],
- d: [0, 0]
+ d: [0, 0],
}
);
@@ -187,7 +192,7 @@
c: 0,
d: [NestedStructT::default(), NestedStructT::default()],
e: 0,
- f: [0, 0]
+ f: [0, 0],
}
);
}
@@ -213,14 +218,14 @@
#[should_panic]
fn assert_on_too_small_array_buf() {
let a = [0u8; 19];
- flatbuffers::Array::<i32, 5>::new(&a);
+ unsafe { flatbuffers::Array::<i32, 5>::new(&a) };
}
#[test]
#[should_panic]
fn assert_on_too_big_array_buf() {
let a = [0u8; 21];
- flatbuffers::Array::<i32, 5>::new(&a);
+ unsafe { flatbuffers::Array::<i32, 5>::new(&a) };
}
#[test]
@@ -251,10 +256,10 @@
let generated_scalar = T::arbitrary(g);
// Verify that generated scalar is not Nan, which is not equals to itself,
// therefore we can't use it to validate input == output
- if generated_scalar == generated_scalar { return generated_scalar }
+ if generated_scalar == generated_scalar { return generated_scalar; }
}
});
- FakeArray{0: x}
+ FakeArray { 0: x }
}
}
@@ -263,6 +268,7 @@
#[cfg(not(miri))] // slow.
extern crate quickcheck;
extern crate flatbuffers;
+
use self::flatbuffers::{Follow, Push};
use super::*;
@@ -275,8 +281,10 @@
($test_name:ident, $fn_name:ident, $ty:ident) => (
fn $fn_name(xs: FakeArray<$ty, ARRAY_SIZE>) {
let mut test_buf = [0 as u8; 1024];
- flatbuffers::emplace_scalar_array(&mut test_buf, 0, &xs.0);
- let arr: flatbuffers::Array<$ty, ARRAY_SIZE> = flatbuffers::Array::follow(&test_buf, 0);
+ let arr: flatbuffers::Array<$ty, ARRAY_SIZE> = unsafe {
+ flatbuffers::emplace_scalar_array(&mut test_buf, 0, &xs.0);
+ flatbuffers::Array::follow(&test_buf, 0)
+ };
let got: [$ty; ARRAY_SIZE] = arr.into();
assert_eq!(got, xs.0);
}
@@ -308,7 +316,7 @@
fn arbitrary<G: Gen>(g: &mut G) -> NestedStructWrapper {
let mut x = NestedStruct::default();
x.0 = FakeArray::<u8, NESTED_STRUCT_SIZE>::arbitrary(g).0;
- NestedStructWrapper{0: x}
+ NestedStructWrapper { 0: x }
}
}
@@ -317,16 +325,16 @@
let native_struct_array: [&NestedStruct; ARRAY_SIZE] = array_init::from_iter(xs.0.iter().map(|x| &x.0)).unwrap();
for i in 0..ARRAY_SIZE {
let offset = i * NESTED_STRUCT_SIZE;
- native_struct_array[i].push(&mut test_buf[offset..offset + NESTED_STRUCT_SIZE], &[]);
+ unsafe { native_struct_array[i].push(&mut test_buf[offset..offset + NESTED_STRUCT_SIZE], 0) };
}
- let arr: flatbuffers::Array<NestedStruct, ARRAY_SIZE> = flatbuffers::Array::follow(&test_buf, 0);
+ let arr: flatbuffers::Array<NestedStruct, ARRAY_SIZE> = unsafe { flatbuffers::Array::follow(&test_buf, 0) };
let got: [&NestedStruct; ARRAY_SIZE] = arr.into();
assert_eq!(got, native_struct_array);
}
#[test]
#[cfg(not(miri))] // slow.
- fn test_struct() {
+ fn test_struct() {
quickcheck::QuickCheck::new().max_tests(MAX_TESTS).quickcheck(prop_struct as fn(FakeArray<NestedStructWrapper, ARRAY_SIZE>));
}
}
diff --git a/tests/rust_usage_test/tests/integration_test.rs b/tests/rust_usage_test/tests/integration_test.rs
index 73d4a1f..fd92da3 100644
--- a/tests/rust_usage_test/tests/integration_test.rs
+++ b/tests/rust_usage_test/tests/integration_test.rs
@@ -48,28 +48,28 @@
mod more_defaults_test;
mod optional_scalars_test;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../include_test1/mod.rs"]
pub mod include_test1_generated;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../include_test2/mod.rs"]
pub mod include_test2_generated;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../namespace_test/mod.rs"]
pub mod namespace_test_generated;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../monster_test/mod.rs"]
mod monster_test_generated;
pub use monster_test_generated::my_game;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../optional_scalars/mod.rs"]
mod optional_scalars_generated;
-#[allow(dead_code, unused_imports)]
+#[allow(dead_code, unused_imports, clippy::all)]
#[path = "../../arrays_test/mod.rs"]
mod arrays_test_generated;
@@ -152,8 +152,10 @@
b: 0
}
});
+ let mut default_without_nan = MonsterT::default();
+ default_without_nan.nan_default = 0.0;
assert_eq!(
- MonsterT::default(),
+ default_without_nan,
MonsterT {
pos: None,
hp: 100,
@@ -205,6 +207,14 @@
native_inline: None,
long_enum_non_enum_default: Default::default(),
long_enum_normal_default: LongEnum::LongOne,
+ nan_default: 0.0,
+ inf_default: f32::INFINITY,
+ positive_inf_default: f32::INFINITY,
+ infinity_default: f32::INFINITY,
+ positive_infinity_default: f32::INFINITY,
+ negative_inf_default: f32::NEG_INFINITY,
+ negative_infinity_default: f32::NEG_INFINITY,
+ double_inf_default: f64::INFINITY,
}
);
}
@@ -229,8 +239,8 @@
name: Some(fred_name),
..Default::default()
}).as_union_value()),
- inventory: Some(builder.create_vector_direct(&[0u8, 1, 2, 3, 4][..])),
- test4: Some(builder.create_vector_direct(&[my_game::example::Test::new(10, 20),
+ inventory: Some(builder.create_vector(&[0u8, 1, 2, 3, 4])),
+ test4: Some(builder.create_vector(&[my_game::example::Test::new(10, 20),
my_game::example::Test::new(30, 40)])),
testarrayofstring: Some(builder.create_vector(&[s0, s1])),
..Default::default()
@@ -254,7 +264,11 @@
my_game::example::Test::new(30, 40)][..]);
let name = builder.create_string("MyMonster");
- let testarrayofstring = builder.create_vector_of_strings(&["test1", "test2"][..]);
+
+ let test1 = builder.create_string("test1");
+ let test2 = builder.create_string("test2");
+
+ let testarrayofstring = builder.create_vector(&[test1, test2]);
// begin building
@@ -306,7 +320,7 @@
check_eq!(m.test_type(), my_game::example::Any::Monster)?;
check_is_some!(m.test())?;
let table2 = m.test().unwrap();
- let monster2 = my_game::example::Monster::init_from_table(table2);
+ let monster2 = unsafe { my_game::example::Monster::init_from_table(table2) };
check_eq!(monster2.name(), "Fred")?;
@@ -319,8 +333,8 @@
check_is_some!(m.test4())?;
let test4 = m.test4().unwrap();
check_eq!(test4.len(), 2)?;
- check_eq!(test4[0].a() as i32 + test4[0].b() as i32 +
- test4[1].a() as i32 + test4[1].b() as i32, 100)?;
+ check_eq!(test4.get(0).a() as i32 + test4.get(0).b() as i32 +
+ test4.get(1).a() as i32 + test4.get(1).b() as i32, 100)?;
check_is_some!(m.testarrayofstring())?;
let testarrayofstring = m.testarrayofstring().unwrap();
@@ -463,7 +477,7 @@
});
b.finish(m, None);
let data = b.finished_data();
- assert!(data.len() < 5100); // est 4000 for the vector + 1000 for the string + 100 overhead.
+ assert!(data.len() < 5200); // est 4000 for the vector + 1000 for the string + 200 overhead.
let mut opts = flatbuffers::VerifierOptions::default();
opts.max_apparent_size = 1_000_000;
@@ -572,16 +586,16 @@
// make sure values retrieved from the 'static buffer are themselves 'static
let monster: my_game::example::Monster<'static> = my_game::example::root_as_monster(slice).unwrap();
// this line should compile:
- let name: Option<&'static str> = monster._tab.get::<flatbuffers::ForwardsUOffset<&str>>(my_game::example::Monster::VT_NAME, None);
+ let name: Option<&'static str> = unsafe { monster._tab.get::<flatbuffers::ForwardsUOffset<&str>>(my_game::example::Monster::VT_NAME, None) };
assert_eq!(name, Some("MyMonster"));
}
#[test]
fn table_get_field_from_static_buffer_2() {
static DATA: [u8; 4] = [0, 0, 0, 0]; // some binary data
- let table: flatbuffers::Table<'static> = flatbuffers::Table::new(&DATA, 0);
+ let table: flatbuffers::Table<'static> = unsafe { flatbuffers::Table::new(&DATA, 0) };
// this line should compile:
- table.get::<&'static str>(0, None);
+ unsafe { table.get::<&'static str>(0, None) };
}
#[test]
@@ -696,8 +710,8 @@
let mon = my_game::example::root_as_monster(b.finished_data()).unwrap();
assert_eq!(mon.name(), "bar");
assert_eq!(mon.test_type(), my_game::example::Any::Monster);
- assert_eq!(my_game::example::Monster::init_from_table(mon.test().unwrap()).name(),
- "foo");
+ let name = unsafe { my_game::example::Monster::init_from_table(mon.test().unwrap()).name() };
+ assert_eq!(name, "foo");
assert_eq!(mon.test_as_monster().unwrap().name(), "foo");
assert_eq!(mon.test_as_test_simple_table_with_enum(), None);
assert_eq!(mon.test_as_my_game_example_2_monster(), None);
@@ -799,9 +813,9 @@
let m = my_game::example::root_as_monster(b1.finished_data()).unwrap();
assert!(m.testnestedflatbuffer().is_some());
- assert_eq!(m.testnestedflatbuffer().unwrap(), b0.finished_data());
+ assert_eq!(m.testnestedflatbuffer().unwrap().bytes(), b0.finished_data());
- let m2_a = my_game::example::root_as_monster(m.testnestedflatbuffer().unwrap()).unwrap();
+ let m2_a = my_game::example::root_as_monster(m.testnestedflatbuffer().unwrap().bytes()).unwrap();
assert_eq!(m2_a.hp(), 123);
assert_eq!(m2_a.name(), "foobar");
@@ -821,7 +835,8 @@
#[test]
fn vector_of_string_store_helper_build() {
let mut b = flatbuffers::FlatBufferBuilder::new();
- let v = b.create_vector_of_strings(&["foobar", "baz"]);
+ let strings = &[b.create_string("foobar"), b.create_string("baz")];
+ let v = b.create_vector(strings);
let name = b.create_string("foo");
let m = build_mon(&mut b, &my_game::example::MonsterArgs{
name: Some(name),
@@ -874,8 +889,9 @@
let name = b.create_string("foo");
let m = build_mon(&mut b, &my_game::example::MonsterArgs{
name: Some(name),
- inventory: Some(v), ..Default::default()});
- assert_eq!(m.inventory().unwrap(), &[123, 234][..]);
+ inventory: Some(v), ..Default::default()
+ });
+ assert_eq!(m.inventory().unwrap().bytes(), &[123, 234]);
}
#[test]
fn vector_of_bool_store() {
@@ -885,14 +901,13 @@
let m = build_mon(&mut b, &my_game::example::MonsterArgs{
name: Some(name),
testarrayofbools: Some(v), ..Default::default()});
- assert_eq!(m.testarrayofbools().unwrap(), &[false, true, false, true][..]);
let rust_vec_inst = m.testarrayofbools().unwrap();
let rust_vec_iter_collect = rust_vec_inst.iter().collect::<Vec<_>>();
- assert_eq!(rust_vec_iter_collect, &[&false, &true, &false, &true][..]);
+ assert_eq!(&rust_vec_iter_collect, &[false, true, false, true]);
let rust_vec_iter_rev_collect = rust_vec_inst.iter().rev().collect::<Vec<_>>();
- assert_eq!(rust_vec_iter_rev_collect, &[&true, &false, &true, &false][..]);
+ assert_eq!(&rust_vec_iter_rev_collect, &[true, false, true, false]);
}
#[test]
fn vector_of_f64_store() {
@@ -922,7 +937,6 @@
let m = build_mon(&mut b, &my_game::example::MonsterArgs{
name: Some(name),
test4: Some(v), ..Default::default()});
- assert_eq!(m.test4().unwrap(), &[my_game::example::Test::new(127, -128), my_game::example::Test::new(3, 123)][..]);
let rust_vec_inst = m.test4().unwrap();
let rust_vec_iter_collect = rust_vec_inst.iter().collect::<Vec<_>>();
@@ -941,7 +955,8 @@
let m = build_mon(&mut b, &my_game::example::MonsterArgs{
name: Some(name),
test4: Some(v), ..Default::default()});
- assert_eq!(m.test4().unwrap(), &[my_game::example::Test::new(127, -128), my_game::example::Test::new(3, 123), my_game::example::Test::new(100, 101)][..]);
+ let vals: Vec<_> = m.test4().unwrap().iter().collect::<Vec<_>>();
+ assert_eq!(vals, vec![&my_game::example::Test::new(127, -128), &my_game::example::Test::new(3, 123), &my_game::example::Test::new(100, 101)]);
}
#[test]
fn vector_of_enums_store() {
@@ -1088,56 +1103,6 @@
}
}
-#[cfg(test)]
-mod roundtrip_byteswap {
- #[cfg(not(miri))] // slow.
- extern crate quickcheck;
- extern crate flatbuffers;
-
- const N: u64 = 10000;
-
- fn palindrome_32(x: f32) -> bool {
- x == f32::from_bits(x.to_bits().swap_bytes())
- }
- fn palindrome_64(x: f64) -> bool {
- x == f64::from_bits(x.to_bits().swap_bytes())
- }
-
- fn prop_f32(x: f32) {
- use flatbuffers::byte_swap_f32;
-
- let there = byte_swap_f32(x);
-
- let back_again = byte_swap_f32(there);
-
- if !palindrome_32(x) {
- assert!(x != there);
- }
-
- assert_eq!(x, back_again);
- }
-
- fn prop_f64(x: f64) {
- use flatbuffers::byte_swap_f64;
-
- let there = byte_swap_f64(x);
- let back_again = byte_swap_f64(there);
-
- if !palindrome_64(x) {
- assert!(x != there);
- }
-
- assert_eq!(x, back_again);
- }
-
- // TODO(rw): Replace the implementations with the new stdlib endian-conversion functions.
- // TODO(rw): Re-enable these tests (currently, rare CI failures occur that seem spurious).
- // #[test]
- // fn fuzz_f32() { quickcheck::QuickCheck::new().max_tests(N).quickcheck(prop_f32 as fn(f32)); }
- // #[test]
- // fn fuzz_f64() { quickcheck::QuickCheck::new().max_tests(N).quickcheck(prop_f64 as fn(f64)); }
-}
-
#[cfg(not(miri))]
quickcheck! {
fn struct_of_structs(
@@ -1204,7 +1169,7 @@
let buf = b.finished_data();
- let got = <flatbuffers::ForwardsUOffset<flatbuffers::Vector<T>>>::follow(&buf[..], 0);
+ let got = unsafe { <flatbuffers::ForwardsUOffset<flatbuffers::Vector<T>>>::follow(&buf[..], 0) };
let mut result_vec: Vec<T> = Vec::with_capacity(got.len());
for i in 0..got.len() {
result_vec.push(got.get(i));
@@ -1253,54 +1218,6 @@
}
#[cfg(test)]
- mod create_vector_direct {
- #[cfg(not(miri))] // slow.
- extern crate quickcheck;
- extern crate flatbuffers;
-
- const N: u64 = 20;
-
- // This uses a macro because lifetimes for the trait-bounded function get too
- // complicated.
- macro_rules! impl_prop {
- ($test_name:ident, $fn_name:ident, $ty:ident) => (
- fn $fn_name(xs: alloc::vec::Vec<$ty>) {
- use flatbuffers::Follow;
-
- let mut b = flatbuffers::FlatBufferBuilder::new();
- b.create_vector_direct(&xs[..]);
- let buf = b.unfinished_data();
-
- let got = <flatbuffers::Vector<$ty>>::follow(&buf[..], 0).safe_slice();
- assert_eq!(got, &xs[..]);
- }
- #[test]
- fn $test_name() { quickcheck::QuickCheck::new().max_tests(N).quickcheck($fn_name as fn(alloc::vec::Vec<_>)); }
- )
- }
-
- impl_prop!(test_bool, prop_bool, bool);
- impl_prop!(test_u8, prop_u8, u8);
- impl_prop!(test_i8, prop_i8, i8);
-
- #[cfg(test)]
- #[cfg(target_endian = "little")]
- mod host_is_le {
- const N: u64 = 20;
- use super::flatbuffers;
- use super::quickcheck;
- impl_prop!(test_u16, prop_u16, u16);
- impl_prop!(test_u32, prop_u32, u32);
- impl_prop!(test_u64, prop_u64, u64);
- impl_prop!(test_i16, prop_i16, i16);
- impl_prop!(test_i32, prop_i32, i32);
- impl_prop!(test_i64, prop_i64, i64);
- impl_prop!(test_f32, prop_f32, f32);
- impl_prop!(test_f64, prop_f64, f64);
- }
- }
-
- #[cfg(test)]
mod string_manual_build {
#[cfg(not(miri))] // slow.
extern crate quickcheck;
@@ -1327,7 +1244,7 @@
b.finish_minimal(vecend);
let buf = b.finished_data();
- let got = <flatbuffers::ForwardsUOffset<flatbuffers::Vector<flatbuffers::ForwardsUOffset<&str>>>>::follow(buf, 0);
+ let got = unsafe { <flatbuffers::ForwardsUOffset<flatbuffers::Vector<flatbuffers::ForwardsUOffset<&str>>>>::follow(buf, 0) };
assert_eq!(got.len(), xs.len());
for i in 0..xs.len() {
@@ -1351,21 +1268,20 @@
use alloc::vec::Vec;
fn prop(input: Vec<String>) {
- let xs: Vec<&str> = input.iter().map(|s: &String| &s[..]).collect();
-
use flatbuffers::Follow;
let mut b = flatbuffers::FlatBufferBuilder::new();
- let vecend = b.create_vector_of_strings(&xs[..]);
+ let xs: Vec<_> = input.iter().map(|s: &String| b.create_string(s)).collect();
+ let vecend = b.create_vector(&xs);
b.finish_minimal(vecend);
let buf = b.finished_data();
- let got = <flatbuffers::ForwardsUOffset<flatbuffers::Vector<flatbuffers::ForwardsUOffset<&str>>>>::follow(buf, 0);
+ let got = unsafe { <flatbuffers::ForwardsUOffset<flatbuffers::Vector<flatbuffers::ForwardsUOffset<&str>>>>::follow(buf, 0) };
assert_eq!(got.len(), xs.len());
- for i in 0..xs.len() {
- assert_eq!(got.get(i), &xs[i][..]);
+ for (idx, s) in input.iter().enumerate() {
+ assert_eq!(got.get(idx), s);
}
}
@@ -1516,7 +1432,7 @@
let table = {
let buf = builder.unfinished_data();
let loc = buf.len() as flatbuffers::UOffsetT - objects[i];
- flatbuffers::Table::new(buf, loc as usize)
+ unsafe { flatbuffers::Table::new(buf, loc as usize) }
};
let fields_per_object = (lcg.next() % (max_fields_per_object as u64)) as flatbuffers::VOffsetT;
@@ -1528,19 +1444,21 @@
let f = flatbuffers::field_index_to_field_offset(j);
- match choice {
- 0 => { assert_eq!(bool_val, table.get::<bool>(f, Some(false)).unwrap()); }
- 1 => { assert_eq!(char_val, table.get::<i8>(f, Some(0)).unwrap()); }
- 2 => { assert_eq!(uchar_val, table.get::<u8>(f, Some(0)).unwrap()); }
- 3 => { assert_eq!(short_val, table.get::<i16>(f, Some(0)).unwrap()); }
- 4 => { assert_eq!(ushort_val, table.get::<u16>(f, Some(0)).unwrap()); }
- 5 => { assert_eq!(int_val, table.get::<i32>(f, Some(0)).unwrap()); }
- 6 => { assert_eq!(uint_val, table.get::<u32>(f, Some(0)).unwrap()); }
- 7 => { assert_eq!(long_val, table.get::<i64>(f, Some(0)).unwrap()); }
- 8 => { assert_eq!(ulong_val, table.get::<u64>(f, Some(0)).unwrap()); }
- 9 => { assert_eq!(float_val, table.get::<f32>(f, Some(0.0)).unwrap()); }
- 10 => { assert_eq!(double_val, table.get::<f64>(f, Some(0.0)).unwrap()); }
- _ => { panic!("unknown choice: {}", choice); }
+ unsafe {
+ match choice {
+ 0 => { assert_eq!(bool_val, table.get::<bool>(f, Some(false)).unwrap()); }
+ 1 => { assert_eq!(char_val, table.get::<i8>(f, Some(0)).unwrap()); }
+ 2 => { assert_eq!(uchar_val, table.get::<u8>(f, Some(0)).unwrap()); }
+ 3 => { assert_eq!(short_val, table.get::<i16>(f, Some(0)).unwrap()); }
+ 4 => { assert_eq!(ushort_val, table.get::<u16>(f, Some(0)).unwrap()); }
+ 5 => { assert_eq!(int_val, table.get::<i32>(f, Some(0)).unwrap()); }
+ 6 => { assert_eq!(uint_val, table.get::<u32>(f, Some(0)).unwrap()); }
+ 7 => { assert_eq!(long_val, table.get::<i64>(f, Some(0)).unwrap()); }
+ 8 => { assert_eq!(ulong_val, table.get::<u64>(f, Some(0)).unwrap()); }
+ 9 => { assert_eq!(float_val, table.get::<f32>(f, Some(0.0)).unwrap()); }
+ 10 => { assert_eq!(double_val, table.get::<f64>(f, Some(0.0)).unwrap()); }
+ _ => { panic!("unknown choice: {}", choice); }
+ }
}
}
}
@@ -1576,13 +1494,13 @@
// use
let buf = b.finished_data();
- let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(buf, 0);
+ let tab = unsafe { <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(buf, 0) };
for i in 0..xs.len() {
- let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(i as flatbuffers::VOffsetT), None);
+ let v = unsafe { tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(i as flatbuffers::VOffsetT), None) };
assert!(v.is_some());
- let v2 = v.unwrap().safe_slice();
- assert_eq!(v2, &xs[i][..]);
+ let v2 = v.unwrap();
+ assert_eq!(v2.bytes(), &xs[i]);
}
}
prop(vec![vec![1,2,3]]);
@@ -1613,10 +1531,10 @@
// use
let buf = b.finished_data();
- let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(buf, 0);
+ let tab = unsafe { <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(buf, 0) };
for i in 0..xs.len() {
- let v = tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(i as flatbuffers::VOffsetT), None);
+ let v = unsafe { tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(i as flatbuffers::VOffsetT), None) };
assert_eq!(v, Some(&xs[i][..]));
}
}
@@ -1669,10 +1587,10 @@
// use
let buf = b.finished_data();
- let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(buf, 0);
+ let tab = unsafe { <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(buf, 0) };
for i in 0..vecs.len() {
- let got = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<T>>>(fi2fo(i as flatbuffers::VOffsetT), None);
+ let got = unsafe { tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<T>>>(fi2fo(i as flatbuffers::VOffsetT), None) };
assert!(got.is_some());
let got2 = got.unwrap();
let mut got3: Vec<T> = Vec::with_capacity(got2.len());
@@ -1774,9 +1692,9 @@
($fn_name:ident, $ty:ident) => (
fn $fn_name(x: $ty) {
let mut buf = vec![0u8; ::core::mem::size_of::<$ty>()];
- x.push(&mut buf[..], &[][..]);
+ unsafe { x.push(&mut buf[..], 0) };
let fs: flatbuffers::FollowStart<$ty> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&buf[..], 0), x);
+ assert_eq!(unsafe { fs.self_follow(&buf[..], 0) }, x);
}
)
}
@@ -1866,7 +1784,10 @@
vector_of_enums: None, signed_enum: None, \
testrequirednestedflatbuffer: None, scalar_key_sorted_tables: None, \
native_inline: None, long_enum_non_enum_default: (empty), \
- long_enum_normal_default: LongOne }, \
+ long_enum_normal_default: LongOne, nan_default: NaN, inf_default: \
+ inf, positive_inf_default: inf, infinity_default: inf, \
+ positive_infinity_default: inf, negative_inf_default: -inf, \
+ negative_infinity_default: -inf, double_inf_default: inf }, \
test4: Some([Test { a: 10, b: 20 }, Test { a: 30, b: 40 }]), \
testarrayofstring: Some([\"test1\", \"test2\"]), \
testarrayoftables: None, enemy: None, testnestedflatbuffer: None, \
@@ -1886,7 +1807,10 @@
vector_of_enums: None, signed_enum: None, \
testrequirednestedflatbuffer: None, scalar_key_sorted_tables: None, \
native_inline: None, long_enum_non_enum_default: (empty), \
- long_enum_normal_default: LongOne }"
+ long_enum_normal_default: LongOne, nan_default: NaN, inf_default: \
+ inf, positive_inf_default: inf, infinity_default: inf, \
+ positive_infinity_default: inf, negative_inf_default: -inf, \
+ negative_infinity_default: -inf, double_inf_default: inf }"
);
}
@@ -2120,7 +2044,7 @@
struct foo { }
impl<'b> flatbuffers::Push for &'b foo {
type Output = foo;
- fn push<'a>(&'a self, _dst: &'a mut [u8], _rest: &'a [u8]) { }
+ unsafe fn push<'a>(&'a self, _dst: &'a mut [u8], _written_len: usize) { }
}
let mut b = flatbuffers::FlatBufferBuilder::new();
b.push_slot_always(0, &foo{});
@@ -2173,18 +2097,17 @@
}
}
}
- impl flatbuffers::SafeSliceAccess for FooStruct {}
impl<'a> flatbuffers::Follow<'a> for FooStruct {
type Inner = &'a FooStruct;
#[inline(always)]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
<&'a FooStruct>::follow(buf, loc)
}
}
impl<'a> flatbuffers::Follow<'a> for &'a FooStruct {
type Inner = &'a FooStruct;
#[inline(always)]
- fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
+ unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
flatbuffers::follow_cast_ref::<FooStruct>(buf, loc)
}
}
@@ -2193,88 +2116,67 @@
fn to_u8() {
let vec: Vec<u8> = vec![255, 3];
let fs: flatbuffers::FollowStart<u8> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&vec[..], 1), 3);
+ assert_eq!(unsafe { fs.self_follow(&vec[..], 1) }, 3);
}
#[test]
fn to_u16() {
let vec: Vec<u8> = vec![255, 255, 3, 4];
let fs: flatbuffers::FollowStart<u16> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&vec[..], 2), 1027);
+ assert_eq!(unsafe { fs.self_follow(&vec[..], 2) }, 1027);
}
#[test]
fn to_f32() {
let vec: Vec<u8> = vec![255, 255, 255, 255, /* start of value */ 208, 15, 73, 64];
let fs: flatbuffers::FollowStart<f32> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&vec[..], 4), 3.14159);
+ assert_eq!(unsafe { fs.self_follow(&vec[..], 4) }, 3.14159);
}
#[test]
fn to_string() {
let vec: Vec<u8> = vec![255,255,255,255, 3, 0, 0, 0, 'f' as u8, 'o' as u8, 'o' as u8, 0];
let off: flatbuffers::FollowStart<&str> = flatbuffers::FollowStart::new();
- assert_eq!(off.self_follow(&vec[..], 4), "foo");
+ assert_eq!(unsafe { off.self_follow(&vec[..], 4) }, "foo");
}
#[test]
fn to_byte_slice() {
let vec: Vec<u8> = vec![255, 255, 255, 255, 4, 0, 0, 0, 1, 2, 3, 4];
let off: flatbuffers::FollowStart<flatbuffers::Vector<u8>> = flatbuffers::FollowStart::new();
- assert_eq!(off.self_follow(&vec[..], 4).safe_slice(), &[1, 2, 3, 4][..]);
- }
-
- #[test]
- fn to_byte_vector() {
- let vec: Vec<u8> = vec![255, 255, 255, 255, 4, 0, 0, 0, 1, 2, 3, 4];
- let off: flatbuffers::FollowStart<flatbuffers::Vector<u8>> = flatbuffers::FollowStart::new();
- assert_eq!(off.self_follow(&vec[..], 4).safe_slice(), &[1, 2, 3, 4][..]);
- }
-
- #[test]
- fn to_byte_string_zero_teriminated() {
- let vec: Vec<u8> = vec![255, 255, 255, 255, 3, 0, 0, 0, 1, 2, 3, 0];
- let off: flatbuffers::FollowStart<flatbuffers::Vector<u8>> = flatbuffers::FollowStart::new();
- assert_eq!(off.self_follow(&vec[..], 4).safe_slice(), &[1, 2, 3][..]);
+ assert_eq!(unsafe { off.self_follow(&vec[..], 4).bytes() }, &[1, 2, 3, 4][..]);
}
#[test]
fn to_vector_of_u16() {
let vec: Vec<u8> = vec![255, 255, 255, 255, 2, 0, 0, 0, 1, 2, 3, 4];
let off: flatbuffers::FollowStart<flatbuffers::Vector<u16>> = flatbuffers::FollowStart::new();
- assert_eq!(off.self_follow(&vec[..], 4).len(), 2);
- assert_eq!(off.self_follow(&vec[..], 4).get(0), 513);
- assert_eq!(off.self_follow(&vec[..], 4).get(1), 1027);
+ assert_eq!(unsafe { off.self_follow(&vec[..], 4).len() }, 2);
+ assert_eq!(unsafe { off.self_follow(&vec[..], 4).get(0) }, 513);
+ assert_eq!(unsafe { off.self_follow(&vec[..], 4).get(1) }, 1027);
}
#[test]
fn to_struct() {
let vec: Vec<u8> = vec![255, 255, 255, 255, 1, 2, 3, 4];
let off: flatbuffers::FollowStart<&FooStruct> = flatbuffers::FollowStart::new();
- assert_eq!(*off.self_follow(&vec[..], 4), FooStruct::new(1, 2, 1027));
+ assert_eq!(unsafe { *off.self_follow(&vec[..], 4) }, FooStruct::new(1, 2, 1027));
}
#[test]
fn to_vector_of_offset_to_string_elements() {
let buf: Vec<u8> = vec![/* vec len */ 1, 0, 0, 0, /* offset to string */ 4, 0, 0, 0, /* str length */ 3, 0, 0, 0, 'f' as u8, 'o' as u8, 'o' as u8, 0];
let s: flatbuffers::FollowStart<flatbuffers::Vector<flatbuffers::ForwardsUOffset<&str>>> = flatbuffers::FollowStart::new();
- assert_eq!(s.self_follow(&buf[..], 0).len(), 1);
- assert_eq!(s.self_follow(&buf[..], 0).get(0), "foo");
- }
-
- #[test]
- fn to_slice_of_struct_elements() {
- let buf: Vec<u8> = vec![1, 0, 0, 0, /* struct data */ 1, 2, 3, 4];
- let fs: flatbuffers::FollowStart<flatbuffers::Vector<FooStruct>> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&buf[..], 0).safe_slice(), &vec![FooStruct::new(1, 2, 1027)][..]);
+ assert_eq!(unsafe {s.self_follow(&buf[..], 0).len() }, 1);
+ assert_eq!(unsafe { s.self_follow(&buf[..], 0).get(0) }, "foo");
}
#[test]
fn to_vector_of_struct_elements() {
let buf: Vec<u8> = vec![1, 0, 0, 0, /* struct data */ 1, 2, 3, 4];
let fs: flatbuffers::FollowStart<flatbuffers::Vector<FooStruct>> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&buf[..], 0).len(), 1);
- assert_eq!(fs.self_follow(&buf[..], 0).get(0), &FooStruct::new(1, 2, 1027));
+ assert_eq!(unsafe { fs.self_follow(&buf[..], 0).len() }, 1);
+ assert_eq!(unsafe { fs.self_follow(&buf[..], 0).get(0) }, &FooStruct::new(1, 2, 1027));
}
#[test]
@@ -2288,8 +2190,10 @@
// enter table
8, 0, 0, 0, // vtable location
];
- let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
- assert_eq!(fs.self_follow(&buf[..], 0), flatbuffers::Table::new(&buf[..], 12));
+ unsafe {
+ let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
+ assert_eq!(fs.self_follow(&buf[..], 0), flatbuffers::Table::new(&buf[..], 12));
+ }
}
#[test]
@@ -2305,9 +2209,11 @@
10, 0, 0, 0, // vtable location
0, 99 // value (with padding)
];
- let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
- let tab = fs.self_follow(&buf[..], 0);
- assert_eq!(tab.get::<u8>(fi2fo(0), Some(123)), Some(99));
+ unsafe {
+ let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
+ let tab = fs.self_follow(&buf[..], 0);
+ assert_eq!(tab.get::<u8>(fi2fo(0), Some(123)), Some(99));
+ }
}
#[test]
@@ -2321,9 +2227,11 @@
// enter table
8, 0, 0, 0, // vtable location
];
- let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
- let tab = fs.self_follow(&buf[..], 0);
- assert_eq!(tab.get::<u8>(fi2fo(0), Some(123)), Some(123));
+ unsafe {
+ let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
+ let tab = fs.self_follow(&buf[..], 0);
+ assert_eq!(tab.get::<u8>(fi2fo(0), Some(123)), Some(123));
+ }
}
#[test]
@@ -2338,9 +2246,11 @@
// enter table
10, 0, 0, 0, // vtable location
];
- let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
- let tab = fs.self_follow(&buf[..], 0);
- assert_eq!(tab.get::<u8>(fi2fo(0), Some(123)), Some(123));
+ unsafe {
+ let fs: flatbuffers::FollowStart<flatbuffers::ForwardsUOffset<flatbuffers::Table>> = flatbuffers::FollowStart::new();
+ let tab = fs.self_follow(&buf[..], 0);
+ assert_eq!(tab.get::<u8>(fi2fo(0), Some(123)), Some(123));
+ }
}
#[test]
@@ -2360,15 +2270,17 @@
// enter string
3, 0, 0, 0, 109, 111, 111, 0 // string length and contents
];
- let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(&buf[..], 0);
- assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(0), None), Some("moo"));
- let byte_vec = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), None).unwrap().safe_slice();
- assert_eq!(byte_vec, &vec![109, 111, 111][..]);
- let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), None).unwrap();
- assert_eq!(v.len(), 3);
- assert_eq!(v.get(0), 109);
- assert_eq!(v.get(1), 111);
- assert_eq!(v.get(2), 111);
+ unsafe {
+ let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(&buf[..], 0);
+ assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(0), None), Some("moo"));
+ let byte_vec = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), None).unwrap().bytes();
+ assert_eq!(byte_vec, &vec![109, 111, 111][..]);
+ let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), None).unwrap();
+ assert_eq!(v.len(), 3);
+ assert_eq!(v.get(0), 109);
+ assert_eq!(v.get(1), 111);
+ assert_eq!(v.get(2), 111);
+ }
}
#[test]
@@ -2382,20 +2294,23 @@
// enter table
8, 0, 0, 0, // vtable location
];
- let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(&buf[..], 0);
- assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(0), Some("abc")), Some("abc"));
- #[cfg(target_endian = "little")]
- {
- assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&[u8]>>(fi2fo(0), Some(&vec![70, 71, 72][..])), Some(&vec![70, 71, 72][..]));
- }
- let default_vec_buf: Vec<u8> = vec![3, 0, 0, 0, 70, 71, 72, 0];
- let default_vec = flatbuffers::Vector::new(&default_vec_buf[..], 0);
- let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), Some(default_vec)).unwrap();
- assert_eq!(v.len(), 3);
- assert_eq!(v.get(0), 70);
- assert_eq!(v.get(1), 71);
- assert_eq!(v.get(2), 72);
+ unsafe {
+ let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(&buf[..], 0);
+ assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(0), Some("abc")), Some("abc"));
+ #[cfg(target_endian = "little")]
+ {
+ assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&[u8]>>(fi2fo(0), Some(&vec![70, 71, 72][..])), Some(&vec![70, 71, 72][..]));
+ }
+
+ let default_vec_buf: Vec<u8> = vec![3, 0, 0, 0, 70, 71, 72, 0];
+ let default_vec = flatbuffers::Vector::new(&default_vec_buf[..], 0);
+ let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), Some(default_vec)).unwrap();
+ assert_eq!(v.len(), 3);
+ assert_eq!(v.get(0), 70);
+ assert_eq!(v.get(1), 71);
+ assert_eq!(v.get(2), 72);
+ }
}
#[test]
@@ -2410,20 +2325,22 @@
// enter table
10, 0, 0, 0, // vtable location
];
- let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(&buf[..], 0);
- assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(0), Some("abc")), Some("abc"));
- #[cfg(target_endian = "little")]
- {
- assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&[u8]>>(fi2fo(0), Some(&vec![70, 71, 72][..])), Some(&vec![70, 71, 72][..]));
- }
+ unsafe {
+ let tab = <flatbuffers::ForwardsUOffset<flatbuffers::Table>>::follow(&buf[..], 0);
+ assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&str>>(fi2fo(0), Some("abc")), Some("abc"));
+ #[cfg(target_endian = "little")]
+ {
+ assert_eq!(tab.get::<flatbuffers::ForwardsUOffset<&[u8]>>(fi2fo(0), Some(&vec![70, 71, 72][..])), Some(&vec![70, 71, 72][..]));
+ }
- let default_vec_buf: Vec<u8> = vec![3, 0, 0, 0, 70, 71, 72, 0];
- let default_vec = flatbuffers::Vector::new(&default_vec_buf[..], 0);
- let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), Some(default_vec)).unwrap();
- assert_eq!(v.len(), 3);
- assert_eq!(v.get(0), 70);
- assert_eq!(v.get(1), 71);
- assert_eq!(v.get(2), 72);
+ let default_vec_buf: Vec<u8> = vec![3, 0, 0, 0, 70, 71, 72, 0];
+ let default_vec = flatbuffers::Vector::new(&default_vec_buf[..], 0);
+ let v = tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<u8>>>(fi2fo(0), Some(default_vec)).unwrap();
+ assert_eq!(v.len(), 3);
+ assert_eq!(v.get(0), 70);
+ assert_eq!(v.get(1), 71);
+ assert_eq!(v.get(2), 72);
+ }
}
}
@@ -2923,10 +2840,8 @@
assert_eq!(::core::mem::size_of::<foo>(), 16);
impl<'b> flatbuffers::Push for &'b foo {
type Output = foo;
- fn push<'a>(&'a self, dst: &'a mut [u8], _rest: &'a [u8]) {
- let src = unsafe {
- ::core::slice::from_raw_parts(*self as *const foo as *const u8, ::core::mem::size_of::<foo>())
- };
+ unsafe fn push<'a>(&'a self, dst: &'a mut [u8], _written_len: usize) {
+ let src = ::core::slice::from_raw_parts(*self as *const foo as *const u8, ::core::mem::size_of::<foo>());
dst.copy_from_slice(src);
}
}
diff --git a/tests/swift/Wasm.tests/Package.swift b/tests/swift/Wasm.tests/Package.swift
index 6d3b164..bd32307 100644
--- a/tests/swift/Wasm.tests/Package.swift
+++ b/tests/swift/Wasm.tests/Package.swift
@@ -23,7 +23,7 @@
.macOS(.v10_14),
],
dependencies: [
- .package(path: "../../../swift"),
+ .package(path: "../../.."),
],
targets: [
.target(
diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift
index d37a5bb..ef7d697 100644
--- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift
+++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift
@@ -237,7 +237,7 @@
}
public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: Int16
private var _b: Int8
@@ -291,7 +291,7 @@
public struct MyGame_Example_Test_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -318,7 +318,7 @@
public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _x: Float32
private var _y: Float32
@@ -413,7 +413,7 @@
public struct MyGame_Example_Vec3_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -447,7 +447,7 @@
public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _id: UInt32
private var _distance: UInt32
@@ -500,7 +500,7 @@
public struct MyGame_Example_Ability_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -527,7 +527,7 @@
public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: MyGame_Example_Ability
private var _b: MyGame_Example_Test
@@ -587,7 +587,7 @@
public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -613,7 +613,7 @@
public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: MyGame_Example_StructOfStructs
@@ -655,7 +655,7 @@
public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -679,7 +679,7 @@
public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -733,7 +733,7 @@
}
public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -787,7 +787,7 @@
}
internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
internal var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -870,7 +870,7 @@
}
public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -1011,7 +1011,7 @@
}
public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -1119,7 +1119,7 @@
/// an example documentation comment: "monster object"
public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -2297,7 +2297,7 @@
}
public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/benchmarks/Package.swift b/tests/swift/benchmarks/Package.swift
index d711493..c4913b7 100644
--- a/tests/swift/benchmarks/Package.swift
+++ b/tests/swift/benchmarks/Package.swift
@@ -23,7 +23,7 @@
.macOS(.v10_14),
],
dependencies: [
- .package(path: "../../../swift"),
+ .package(path: "../../.."),
.package(url: "https://github.com/google/swift-benchmark", from: "0.1.0"),
],
targets: [
diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift
index 4e160ca..dbc4cf7 100644
--- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift
+++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift
@@ -6,7 +6,7 @@
internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
internal var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift
index 3348b05..3b52d1a 100644
--- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift
+++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift
@@ -4,7 +4,7 @@
public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _x: Int64
@@ -47,7 +47,7 @@
public struct BytesCount_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -72,7 +72,7 @@
public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -157,7 +157,7 @@
}
public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Package.swift b/tests/swift/tests/Package.swift
index 64fcd54..8b91712 100644
--- a/tests/swift/tests/Package.swift
+++ b/tests/swift/tests/Package.swift
@@ -24,7 +24,7 @@
.macOS(.v10_14),
],
dependencies: [
- .package(path: "../../../swift"),
+ .package(path: "../../.."),
.package(url: "https://github.com/grpc/grpc-swift.git", from: "1.4.1"),
],
targets: [
diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift
index fe7ca0b..a033864 100644
--- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift
+++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift
@@ -32,7 +32,7 @@
public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: Int16
private var _b: Int8
@@ -81,7 +81,7 @@
public struct Test_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -93,7 +93,7 @@
public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _x: Float32
private var _y: Float32
@@ -178,7 +178,7 @@
public struct Vec3_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -195,7 +195,7 @@
/// an example documentation comment: "monster object"
public struct Monster: FlatBufferObject, Verifiable {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift
index 4c243d9..ff37e3b 100644
--- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift
+++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift
@@ -6,7 +6,7 @@
public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _property: Bool
@@ -49,7 +49,7 @@
public struct Property_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -74,7 +74,7 @@
public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift
index d37a5bb..18d227f 100644
--- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift
+++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift
@@ -237,7 +237,7 @@
}
public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: Int16
private var _b: Int8
@@ -291,7 +291,7 @@
public struct MyGame_Example_Test_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -318,7 +318,7 @@
public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _x: Float32
private var _y: Float32
@@ -413,7 +413,7 @@
public struct MyGame_Example_Vec3_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -447,7 +447,7 @@
public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _id: UInt32
private var _distance: UInt32
@@ -500,7 +500,7 @@
public struct MyGame_Example_Ability_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -527,7 +527,7 @@
public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: MyGame_Example_Ability
private var _b: MyGame_Example_Test
@@ -587,7 +587,7 @@
public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -613,7 +613,7 @@
public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _a: MyGame_Example_StructOfStructs
@@ -655,7 +655,7 @@
public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -679,7 +679,7 @@
public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -733,7 +733,7 @@
}
public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -787,7 +787,7 @@
}
internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
internal var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -870,7 +870,7 @@
}
public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -1011,7 +1011,7 @@
}
public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -1119,7 +1119,7 @@
/// an example documentation comment: "monster object"
public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -1184,6 +1184,14 @@
case nativeInline = 106
case longEnumNonEnumDefault = 108
case longEnumNormalDefault = 110
+ case nanDefault = 112
+ case infDefault = 114
+ case positiveInfDefault = 116
+ case infinityDefault = 118
+ case positiveInfinityDefault = 120
+ case negativeInfDefault = 122
+ case negativeInfinityDefault = 124
+ case doubleInfDefault = 126
var v: Int32 { Int32(self.rawValue) }
var p: VOffset { self.rawValue }
}
@@ -1334,7 +1342,23 @@
@discardableResult public func mutate(longEnumNonEnumDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNonEnumDefault.v); return _accessor.mutate(longEnumNonEnumDefault.rawValue, index: o) }
public var longEnumNormalDefault: MyGame_Example_LongEnum { let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return o == 0 ? .longone : MyGame_Example_LongEnum(rawValue: _accessor.readBuffer(of: UInt64.self, at: o)) ?? .longone }
@discardableResult public func mutate(longEnumNormalDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return _accessor.mutate(longEnumNormalDefault.rawValue, index: o) }
- public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 54) }
+ public var nanDefault: Float32 { let o = _accessor.offset(VTOFFSET.nanDefault.v); return o == 0 ? nan : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(nanDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.nanDefault.v); return _accessor.mutate(nanDefault, index: o) }
+ public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? inf : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(infDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infDefault.v); return _accessor.mutate(infDefault, index: o) }
+ public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? +inf : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(positiveInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return _accessor.mutate(positiveInfDefault, index: o) }
+ public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? infinity : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(infinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infinityDefault.v); return _accessor.mutate(infinityDefault, index: o) }
+ public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? +infinity : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(positiveInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return _accessor.mutate(positiveInfinityDefault, index: o) }
+ public var negativeInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return o == 0 ? -inf : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(negativeInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return _accessor.mutate(negativeInfDefault, index: o) }
+ public var negativeInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return o == 0 ? -infinity : _accessor.readBuffer(of: Float32.self, at: o) }
+ @discardableResult public func mutate(negativeInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return _accessor.mutate(negativeInfinityDefault, index: o) }
+ public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? inf : _accessor.readBuffer(of: Double.self, at: o) }
+ @discardableResult public func mutate(doubleInfDefault: Double) -> Bool {let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return _accessor.mutate(doubleInfDefault, index: o) }
+ public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 62) }
public static func add(pos: MyGame_Example_Vec3?, _ fbb: inout FlatBufferBuilder) { guard let pos = pos else { return }; fbb.create(struct: pos, position: VTOFFSET.pos.p) }
public static func add(mana: Int16, _ fbb: inout FlatBufferBuilder) { fbb.add(element: mana, def: 150, at: VTOFFSET.mana.p) }
public static func add(hp: Int16, _ fbb: inout FlatBufferBuilder) { fbb.add(element: hp, def: 100, at: VTOFFSET.hp.p) }
@@ -1398,6 +1422,14 @@
public static func add(nativeInline: MyGame_Example_Test?, _ fbb: inout FlatBufferBuilder) { guard let nativeInline = nativeInline else { return }; fbb.create(struct: nativeInline, position: VTOFFSET.nativeInline.p) }
public static func add(longEnumNonEnumDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNonEnumDefault.rawValue, def: 0, at: VTOFFSET.longEnumNonEnumDefault.p) }
public static func add(longEnumNormalDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNormalDefault.rawValue, def: 2, at: VTOFFSET.longEnumNormalDefault.p) }
+ public static func add(nanDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: nanDefault, def: nan, at: VTOFFSET.nanDefault.p) }
+ public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: inf, at: VTOFFSET.infDefault.p) }
+ public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: +inf, at: VTOFFSET.positiveInfDefault.p) }
+ public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: infinity, at: VTOFFSET.infinityDefault.p) }
+ public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: +infinity, at: VTOFFSET.positiveInfinityDefault.p) }
+ public static func add(negativeInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfDefault, def: -inf, at: VTOFFSET.negativeInfDefault.p) }
+ public static func add(negativeInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfinityDefault, def: -infinity, at: VTOFFSET.negativeInfinityDefault.p) }
+ public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: inf, at: VTOFFSET.doubleInfDefault.p) }
public static func endMonster(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); fbb.require(table: end, fields: [10]); return end }
public static func createMonster(
_ fbb: inout FlatBufferBuilder,
@@ -1453,7 +1485,15 @@
scalarKeySortedTablesVectorOffset scalarKeySortedTables: Offset = Offset(),
nativeInline: MyGame_Example_Test? = nil,
longEnumNonEnumDefault: MyGame_Example_LongEnum = .longone,
- longEnumNormalDefault: MyGame_Example_LongEnum = .longone
+ longEnumNormalDefault: MyGame_Example_LongEnum = .longone,
+ nanDefault: Float32 = nan,
+ infDefault: Float32 = inf,
+ positiveInfDefault: Float32 = +inf,
+ infinityDefault: Float32 = infinity,
+ positiveInfinityDefault: Float32 = +infinity,
+ negativeInfDefault: Float32 = -inf,
+ negativeInfinityDefault: Float32 = -infinity,
+ doubleInfDefault: Double = inf
) -> Offset {
let __start = MyGame_Example_Monster.startMonster(&fbb)
MyGame_Example_Monster.add(pos: pos, &fbb)
@@ -1509,6 +1549,14 @@
MyGame_Example_Monster.add(nativeInline: nativeInline, &fbb)
MyGame_Example_Monster.add(longEnumNonEnumDefault: longEnumNonEnumDefault, &fbb)
MyGame_Example_Monster.add(longEnumNormalDefault: longEnumNormalDefault, &fbb)
+ MyGame_Example_Monster.add(nanDefault: nanDefault, &fbb)
+ MyGame_Example_Monster.add(infDefault: infDefault, &fbb)
+ MyGame_Example_Monster.add(positiveInfDefault: positiveInfDefault, &fbb)
+ MyGame_Example_Monster.add(infinityDefault: infinityDefault, &fbb)
+ MyGame_Example_Monster.add(positiveInfinityDefault: positiveInfinityDefault, &fbb)
+ MyGame_Example_Monster.add(negativeInfDefault: negativeInfDefault, &fbb)
+ MyGame_Example_Monster.add(negativeInfinityDefault: negativeInfinityDefault, &fbb)
+ MyGame_Example_Monster.add(doubleInfDefault: doubleInfDefault, &fbb)
return MyGame_Example_Monster.endMonster(&fbb, start: __start)
}
public static func sortVectorOfMonster(offsets:[Offset], _ fbb: inout FlatBufferBuilder) -> Offset {
@@ -1668,6 +1716,14 @@
MyGame_Example_Monster.add(nativeInline: obj.nativeInline, &builder)
MyGame_Example_Monster.add(longEnumNonEnumDefault: obj.longEnumNonEnumDefault, &builder)
MyGame_Example_Monster.add(longEnumNormalDefault: obj.longEnumNormalDefault, &builder)
+ MyGame_Example_Monster.add(nanDefault: obj.nanDefault, &builder)
+ MyGame_Example_Monster.add(infDefault: obj.infDefault, &builder)
+ MyGame_Example_Monster.add(positiveInfDefault: obj.positiveInfDefault, &builder)
+ MyGame_Example_Monster.add(infinityDefault: obj.infinityDefault, &builder)
+ MyGame_Example_Monster.add(positiveInfinityDefault: obj.positiveInfinityDefault, &builder)
+ MyGame_Example_Monster.add(negativeInfDefault: obj.negativeInfDefault, &builder)
+ MyGame_Example_Monster.add(negativeInfinityDefault: obj.negativeInfinityDefault, &builder)
+ MyGame_Example_Monster.add(doubleInfDefault: obj.doubleInfDefault, &builder)
return MyGame_Example_Monster.endMonster(&builder, start: __root)
}
@@ -1756,6 +1812,14 @@
try _v.visit(field: VTOFFSET.nativeInline.p, fieldName: "nativeInline", required: false, type: MyGame_Example_Test.self)
try _v.visit(field: VTOFFSET.longEnumNonEnumDefault.p, fieldName: "longEnumNonEnumDefault", required: false, type: MyGame_Example_LongEnum.self)
try _v.visit(field: VTOFFSET.longEnumNormalDefault.p, fieldName: "longEnumNormalDefault", required: false, type: MyGame_Example_LongEnum.self)
+ try _v.visit(field: VTOFFSET.nanDefault.p, fieldName: "nanDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.infDefault.p, fieldName: "infDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.positiveInfDefault.p, fieldName: "positiveInfDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.infinityDefault.p, fieldName: "infinityDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.positiveInfinityDefault.p, fieldName: "positiveInfinityDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.negativeInfDefault.p, fieldName: "negativeInfDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.negativeInfinityDefault.p, fieldName: "negativeInfinityDefault", required: false, type: Float32.self)
+ try _v.visit(field: VTOFFSET.doubleInfDefault.p, fieldName: "doubleInfDefault", required: false, type: Double.self)
_v.finish()
}
}
@@ -1816,6 +1880,14 @@
case nativeInline = "native_inline"
case longEnumNonEnumDefault = "long_enum_non_enum_default"
case longEnumNormalDefault = "long_enum_normal_default"
+ case nanDefault = "nan_default"
+ case infDefault = "inf_default"
+ case positiveInfDefault = "positive_inf_default"
+ case infinityDefault = "infinity_default"
+ case positiveInfinityDefault = "positive_infinity_default"
+ case negativeInfDefault = "negative_inf_default"
+ case negativeInfinityDefault = "negative_infinity_default"
+ case doubleInfDefault = "double_inf_default"
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
@@ -2033,6 +2105,30 @@
if longEnumNormalDefault != .longone {
try container.encodeIfPresent(longEnumNormalDefault, forKey: .longEnumNormalDefault)
}
+ if nanDefault != nan {
+ try container.encodeIfPresent(nanDefault, forKey: .nanDefault)
+ }
+ if infDefault != inf {
+ try container.encodeIfPresent(infDefault, forKey: .infDefault)
+ }
+ if positiveInfDefault != +inf {
+ try container.encodeIfPresent(positiveInfDefault, forKey: .positiveInfDefault)
+ }
+ if infinityDefault != infinity {
+ try container.encodeIfPresent(infinityDefault, forKey: .infinityDefault)
+ }
+ if positiveInfinityDefault != +infinity {
+ try container.encodeIfPresent(positiveInfinityDefault, forKey: .positiveInfinityDefault)
+ }
+ if negativeInfDefault != -inf {
+ try container.encodeIfPresent(negativeInfDefault, forKey: .negativeInfDefault)
+ }
+ if negativeInfinityDefault != -infinity {
+ try container.encodeIfPresent(negativeInfinityDefault, forKey: .negativeInfinityDefault)
+ }
+ if doubleInfDefault != inf {
+ try container.encodeIfPresent(doubleInfDefault, forKey: .doubleInfDefault)
+ }
}
}
@@ -2088,6 +2184,14 @@
public var nativeInline: MyGame_Example_Test?
public var longEnumNonEnumDefault: MyGame_Example_LongEnum
public var longEnumNormalDefault: MyGame_Example_LongEnum
+ public var nanDefault: Float32
+ public var infDefault: Float32
+ public var positiveInfDefault: Float32
+ public var infinityDefault: Float32
+ public var positiveInfinityDefault: Float32
+ public var negativeInfDefault: Float32
+ public var negativeInfinityDefault: Float32
+ public var doubleInfDefault: Double
public init(_ _t: inout MyGame_Example_Monster) {
pos = _t.pos
@@ -2240,6 +2344,14 @@
nativeInline = _t.nativeInline
longEnumNonEnumDefault = _t.longEnumNonEnumDefault
longEnumNormalDefault = _t.longEnumNormalDefault
+ nanDefault = _t.nanDefault
+ infDefault = _t.infDefault
+ positiveInfDefault = _t.positiveInfDefault
+ infinityDefault = _t.infinityDefault
+ positiveInfinityDefault = _t.positiveInfinityDefault
+ negativeInfDefault = _t.negativeInfDefault
+ negativeInfinityDefault = _t.negativeInfinityDefault
+ doubleInfDefault = _t.doubleInfDefault
}
public init() {
@@ -2290,6 +2402,14 @@
nativeInline = MyGame_Example_Test()
longEnumNonEnumDefault = .longone
longEnumNormalDefault = .longone
+ nanDefault = nan
+ infDefault = inf
+ positiveInfDefault = +inf
+ infinityDefault = infinity
+ positiveInfinityDefault = +infinity
+ negativeInfDefault = -inf
+ negativeInfinityDefault = -infinity
+ doubleInfDefault = inf
}
public func serialize() -> ByteBuffer { return serialize(type: MyGame_Example_Monster.self) }
@@ -2297,7 +2417,7 @@
}
public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift
index f6692c9..d5885fb 100644
--- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift
+++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift
@@ -29,7 +29,7 @@
public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift
index 565bbd4..c82904b 100644
--- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift
+++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift
@@ -29,7 +29,7 @@
public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift
index ce3d37f..801ea13 100644
--- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift
+++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift
@@ -120,7 +120,7 @@
}
public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _hairLength: Int32
@@ -163,7 +163,7 @@
public struct Rapunzel_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -188,7 +188,7 @@
public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _booksRead: Int32
@@ -231,7 +231,7 @@
public struct BookReader_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -256,7 +256,7 @@
public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
private var _weight: Int32
@@ -299,7 +299,7 @@
public struct FallingTub_Mutable: FlatBufferObject {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Struct
@@ -324,7 +324,7 @@
public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -407,7 +407,7 @@
}
public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
@@ -490,7 +490,7 @@
}
public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift
index dc292f3..c065b9f 100644
--- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift
+++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift
@@ -6,7 +6,7 @@
public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable {
- static func validateVersion() { FlatBuffersVersion_2_0_8() }
+ static func validateVersion() { FlatBuffersVersion_22_10_26() }
public var __buffer: ByteBuffer! { return _accessor.bb }
private var _accessor: Table
diff --git a/tests/test.cpp b/tests/test.cpp
index 7e05c08..65198a6 100644
--- a/tests/test.cpp
+++ b/tests/test.cpp
@@ -16,10 +16,12 @@
#include <stdint.h>
#include <cmath>
+#include <limits>
#include <memory>
#include <string>
#include "evolution_test.h"
+#include "alignment_test.h"
#include "flatbuffers/flatbuffers.h"
#include "flatbuffers/idl.h"
#include "flatbuffers/minireflect.h"
@@ -82,6 +84,8 @@
// clang-format on
}
+// Guard against -Wunused-function on platforms without file tests.
+#ifndef FLATBUFFERS_NO_FILE_TESTS
void GenerateTableTextTest(const std::string &tests_data_path) {
std::string schemafile;
std::string jsonfile;
@@ -376,6 +380,7 @@
true);
TEST_EQ(parser2.Parse("{a_type:Bool,a:{b:true}}"), true);
}
+#endif
void EndianSwapTest() {
TEST_EQ(flatbuffers::EndianSwap(static_cast<int16_t>(0x1234)), 0x3412);
@@ -419,6 +424,12 @@
void EqualOperatorTest() {
MonsterT a;
MonsterT b;
+ // We have to reset the fields that are NaN to zero to allow the equality
+ // to evaluate to true.
+ TEST_EQ(std::isnan(a.nan_default), true);
+ TEST_EQ(std::isnan(b.nan_default), true);
+ a.nan_default = 0;
+ b.nan_default = 0;
TEST_EQ(b == a, true);
TEST_EQ(b != a, false);
@@ -437,12 +448,14 @@
TEST_EQ(b != a, false);
a.enemy.reset(new MonsterT());
+ a.enemy->nan_default = 0;
TEST_EQ(b != a, true);
a.enemy->mana = 33;
TEST_EQ(b == a, false);
TEST_EQ(b != a, true);
b.enemy.reset(new MonsterT());
+ b.enemy->nan_default = 0;
TEST_EQ(b == a, false);
TEST_EQ(b != a, true);
b.enemy->mana = 33;
@@ -456,6 +469,7 @@
TEST_EQ(b == a, false);
TEST_EQ(b != a, true);
a.enemy.reset(new MonsterT());
+ a.enemy->nan_default = 0;
TEST_EQ(b == a, true);
TEST_EQ(b != a, false);
@@ -469,23 +483,29 @@
{
// Two tables are equal by default.
MonsterT a, b;
+ a.nan_default = 0;
+ b.nan_default = 0;
TEST_EQ(a == b, true);
// Adding only a table to one of the monster vectors should make it not
// equal (due to size mistmatch).
a.testarrayoftables.push_back(
flatbuffers::unique_ptr<MonsterT>(new MonsterT));
+ a.testarrayoftables.back()->nan_default = 0;
TEST_EQ(a == b, false);
// Adding an equalivant table to the other monster vector should make it
// equal again.
b.testarrayoftables.push_back(
flatbuffers::unique_ptr<MonsterT>(new MonsterT));
+ b.testarrayoftables.back()->nan_default = 0;
TEST_EQ(a == b, true);
// Create two new monsters that are different.
auto c = flatbuffers::unique_ptr<MonsterT>(new MonsterT);
auto d = flatbuffers::unique_ptr<MonsterT>(new MonsterT);
+ c->nan_default = 0;
+ d->nan_default = 0;
c->hp = 1;
d->hp = 2;
TEST_EQ(c == d, false);
@@ -840,6 +860,8 @@
}
}
+// Guard against -Wunused-function on platforms without file tests.
+#ifndef FLATBUFFERS_NO_FILE_TESTS
// VS10 does not support typed enums, exclude from tests
#if !defined(_MSC_VER) || _MSC_VER >= 1700
void FixedLengthArrayJsonTest(const std::string &tests_data_path, bool binary) {
@@ -1030,6 +1052,7 @@
parserOrg.builder_.GetSize()),
0);
}
+#endif
void NestedVerifierTest() {
// Create a nested monster.
@@ -1395,6 +1418,49 @@
TEST_ASSERT(unpacked.t == test.t);
}
+void DoNotRequireEofTest(const std::string& tests_data_path) {
+ std::string schemafile;
+ bool ok = flatbuffers::LoadFile(
+ (tests_data_path + "monster_test.fbs").c_str(), false, &schemafile);
+ TEST_EQ(ok, true);
+ auto include_test_path =
+ flatbuffers::ConCatPathFileName(tests_data_path, "include_test");
+ const char *include_directories[] = { tests_data_path.c_str(),
+ include_test_path.c_str(), nullptr };
+ flatbuffers::IDLOptions opt;
+ opt.require_json_eof = false;
+ flatbuffers::Parser parser(opt);
+ ok = parser.Parse(schemafile.c_str(), include_directories);
+ TEST_EQ(ok, true);
+
+ const char *str = R"(This string contains two monsters, the first one is {
+ "name": "Blob",
+ "hp": 5
+ }
+ and the second one is {
+ "name": "Imp",
+ "hp": 10
+ }
+ )";
+ const char *tableStart = std::strchr(str, '{');
+ ok = parser.ParseJson(tableStart);
+ TEST_EQ(ok, true);
+
+ const Monster *monster = GetMonster(parser.builder_.GetBufferPointer());
+ TEST_EQ_STR(monster->name()->c_str(), "Blob");
+ TEST_EQ(monster->hp(), 5);
+
+ tableStart += parser.BytesConsumed();
+
+ tableStart = std::strchr(tableStart + 1, '{');
+ ok = parser.ParseJson(tableStart);
+ TEST_EQ(ok, true);
+
+ monster = GetMonster(parser.builder_.GetBufferPointer());
+ TEST_EQ_STR(monster->name()->c_str(), "Imp");
+ TEST_EQ(monster->hp(), 10);
+}
+
int FlatBufferTests(const std::string &tests_data_path) {
// Run our various test suites:
@@ -1416,6 +1482,8 @@
SizePrefixedTest();
+ AlignmentTest();
+
#ifndef FLATBUFFERS_NO_FILE_TESTS
ParseAndGenerateTextTest(tests_data_path, false);
ParseAndGenerateTextTest(tests_data_path, true);
@@ -1439,6 +1507,7 @@
TestMonsterExtraFloats(tests_data_path);
ParseIncorrectMonsterJsonTest(tests_data_path);
FixedLengthArraySpanTest(tests_data_path);
+ DoNotRequireEofTest(tests_data_path);
#endif
UtilConvertCase();
diff --git a/tests/ts/JavaScriptComplexArraysTest.js b/tests/ts/JavaScriptComplexArraysTest.js
new file mode 100644
index 0000000..f8601ed
--- /dev/null
+++ b/tests/ts/JavaScriptComplexArraysTest.js
@@ -0,0 +1,129 @@
+/* global BigInt */
+
+import assert from 'assert';
+import { readFileSync, writeFileSync } from 'fs';
+import * as flatbuffers from 'flatbuffers';
+import {
+ ArrayStructT,
+ ArrayTable,
+ ArrayTableT,
+ InnerStructT,
+ NestedStructT,
+ OuterStructT,
+ TestEnum,
+} from './arrays_test_complex/arrays_test_complex_generated.js';
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+BigInt.prototype.toJSON = function () {
+ return this.toString();
+};
+function fbObjToObj(fbObj) {
+ const ret = {};
+ for (const propName of Object.keys(fbObj)) {
+ const key = propName;
+ const prop = fbObj[key];
+ if (prop.valueOf) {
+ ret[key] = prop.valueOf();
+ } else if (typeof prop === 'object') {
+ ret[key] = fbObjToObj(prop);
+ }
+ }
+ return ret;
+}
+function testBuild(monFile, jsFile) {
+ const arrayTable = new ArrayTableT(
+ 'Complex Array Test',
+ new ArrayStructT(
+ 221.139008,
+ [-700, -600, -500, -400, -300, -200, -100, 0, 100, 200, 300, 400, 500, 600, 700],
+ 13,
+ [
+ new NestedStructT(
+ [233, -123],
+ TestEnum.B,
+ [TestEnum.A, TestEnum.C],
+ [
+ new OuterStructT(
+ false,
+ 123.456,
+ new InnerStructT(
+ 123456792.0,
+ [13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
+ 91,
+ BigInt('9007199254740999')
+ ),
+ [
+ new InnerStructT(
+ -987654321.9876,
+ [255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243],
+ 123,
+ BigInt('9007199254741000')
+ ),
+ new InnerStructT(
+ 123000987.9876,
+ [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113],
+ -123,
+ BigInt('9007199254741000')
+ ),
+ ],
+ new InnerStructT(
+ 987654321.9876,
+ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
+ 19,
+ BigInt('9007199254741000')
+ ),
+ [111000111.222, 222000222.111, 333000333.333, 444000444.444]
+ ),
+ ]
+ ),
+ ],
+ -123456789
+ )
+ );
+ const builder = new flatbuffers.Builder();
+ builder.finish(arrayTable.pack(builder));
+ if (jsFile) {
+ const obj = fbObjToObj(arrayTable);
+ writeFileSync(jsFile, `export default ${JSON.stringify(obj, null, 2)}`);
+ }
+ if (monFile) {
+ writeFileSync(monFile, builder.asUint8Array());
+ }
+ return builder.asUint8Array();
+}
+function testParse(monFile, jsFile, buffer) {
+ if (!buffer) {
+ if (!monFile) {
+ console.log(`Please specify mon file read the buffer from.`);
+ process.exit(1);
+ }
+ buffer = readFileSync(monFile);
+ }
+ const byteBuffer = new flatbuffers.ByteBuffer(new Uint8Array(buffer));
+ const arrayTable = ArrayTable.getRootAsArrayTable(byteBuffer).unpack();
+ const json = JSON.stringify(arrayTable, null, 2);
+ if (jsFile) {
+ writeFileSync(jsFile, `export default ${json}`);
+ }
+ return arrayTable;
+}
+if (process.argv[2] === 'build') {
+ testBuild(process.argv[3], process.argv[4]);
+} else if (process.argv[2] === 'parse') {
+ testParse(process.argv[3], process.argv[4], null);
+} else {
+ const arr = testBuild(null, null);
+ const parsed = testParse(null, null, Buffer.from(arr));
+ assert.strictEqual(parsed.a, 'Complex Array Test', 'String Test');
+ assert.strictEqual(parsed?.cUnderscore?.aUnderscore, 221.13900756835938, 'Float Test');
+ assert.deepEqual(parsed?.cUnderscore?.bUnderscore, [-700, -600, -500, -400, -300, -200, -100, 0, 100, 200, 300, 400, 500, 600, 700], 'Array of signed integers');
+ assert.strictEqual(parsed?.cUnderscore.d?.[0].dOuter[0].d[1].a, 123000987.9876, 'Float in deep');
+ assert.deepEqual(parsed?.cUnderscore?.d[0].dOuter?.[0]?.e, {
+ a: 987654321.9876,
+ b: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
+ c: 19,
+ dUnderscore: '9007199254741000',
+ }, 'Object in deep');
+ assert.deepEqual(parsed?.cUnderscore.g, ['0', '0'], 'Last object');
+
+ console.log('Arrays test: completed successfully');
+}
diff --git a/tests/ts/TypeScriptTest.py b/tests/ts/TypeScriptTest.py
index c95ed72..bb8dfca 100755
--- a/tests/ts/TypeScriptTest.py
+++ b/tests/ts/TypeScriptTest.py
@@ -61,7 +61,7 @@
print("Invoking flatc...")
flatc(
- options=["--ts", "--gen-name-strings", "--gen-mutable", "--gen-object-api"],
+ options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api"],
schema="../monster_test.fbs",
include="../include_test",
)
@@ -74,18 +74,18 @@
)
flatc(
- options=["--ts", "--gen-name-strings", "--gen-mutable", "--gen-object-api"],
+ options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api"],
schema="../union_vector/union_vector.fbs",
prefix="union_vector",
)
flatc(
- options=["--ts", "--gen-name-strings"],
+ options=["--ts", "--reflect-names", "--gen-name-strings"],
schema="../optional_scalars.fbs",
)
flatc(
- options=["--ts", "--gen-name-strings", "--gen-mutable", "--gen-object-api"],
+ options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api"],
schema=[
"typescript_keywords.fbs",
"test_dir/typescript_include.fbs",
@@ -96,8 +96,15 @@
)
flatc(
+ options=["--ts", "--reflect-names", "--ts-flat-files", "--gen-name-strings", "--gen-object-api"],
+ schema="arrays_test_complex/arrays_test_complex.fbs",
+ prefix="arrays_test_complex"
+)
+
+flatc(
options=[
"--ts",
+ "--reflect-names",
"--gen-name-strings",
"--gen-mutable",
"--gen-object-api",
@@ -120,4 +127,5 @@
print("Running TypeScript Tests...")
check_call(NODE_CMD + ["JavaScriptTest"])
check_call(NODE_CMD + ["JavaScriptUnionVectorTest"])
-check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"])
\ No newline at end of file
+check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"])
+check_call(NODE_CMD + ["JavaScriptComplexArraysTest"])
\ No newline at end of file
diff --git a/tests/ts/arrays_test_complex/arrays_test_complex.fbs b/tests/ts/arrays_test_complex/arrays_test_complex.fbs
new file mode 100644
index 0000000..3ef5915
--- /dev/null
+++ b/tests/ts/arrays_test_complex/arrays_test_complex.fbs
@@ -0,0 +1,46 @@
+namespace MyGame.Example;
+
+enum TestEnum : byte { A, B, C }
+
+struct InnerStruct {
+ a:float64;
+ b:[ubyte:13];
+ c:int8;
+ d_underscore:int64;
+}
+
+struct OuterStruct {
+ a:bool;
+ b:double;
+ c_underscore:InnerStruct;
+ d:[InnerStruct:3];
+ e:InnerStruct;
+ f:[float64:4];
+}
+
+struct NestedStruct{
+ a:[int:2];
+ b:TestEnum;
+ c_underscore:[TestEnum:2];
+ d_outer:[OuterStruct:5];
+ e:[int64:2];
+}
+
+struct ArrayStruct{
+ a_underscore:float;
+ b_underscore:[int:0xF];
+ c:byte;
+ d:[NestedStruct:2];
+ e:int32;
+ f:[OuterStruct:2];
+ g:[int64:2];
+}
+
+table ArrayTable{
+ a:string;
+ c_underscore:ArrayStruct;
+}
+
+root_type ArrayTable;
+file_identifier "RHUB";
+file_extension "mon";
\ No newline at end of file
diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.js b/tests/ts/arrays_test_complex/arrays_test_complex_generated.js
new file mode 100644
index 0000000..7530e84
--- /dev/null
+++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.js
@@ -0,0 +1,409 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+import * as flatbuffers from 'flatbuffers';
+export var TestEnum;
+(function (TestEnum) {
+ TestEnum[TestEnum["A"] = 0] = "A";
+ TestEnum[TestEnum["B"] = 1] = "B";
+ TestEnum[TestEnum["C"] = 2] = "C";
+})(TestEnum || (TestEnum = {}));
+export class InnerStruct {
+ constructor() {
+ this.bb = null;
+ this.bb_pos = 0;
+ }
+ __init(i, bb) {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+ }
+ a() {
+ return this.bb.readFloat64(this.bb_pos);
+ }
+ b(index) {
+ return this.bb.readUint8(this.bb_pos + 8 + index);
+ }
+ c() {
+ return this.bb.readInt8(this.bb_pos + 21);
+ }
+ dUnderscore() {
+ return this.bb.readInt64(this.bb_pos + 24);
+ }
+ static getFullyQualifiedName() {
+ return 'MyGame_Example_InnerStruct';
+ }
+ static sizeOf() {
+ return 32;
+ }
+ static createInnerStruct(builder, a, b, c, d_underscore) {
+ var _a;
+ builder.prep(8, 32);
+ builder.writeInt64(BigInt(d_underscore !== null && d_underscore !== void 0 ? d_underscore : 0));
+ builder.pad(2);
+ builder.writeInt8(c);
+ for (let i = 12; i >= 0; --i) {
+ builder.writeInt8(((_a = b === null || b === void 0 ? void 0 : b[i]) !== null && _a !== void 0 ? _a : 0));
+ }
+ builder.writeFloat64(a);
+ return builder.offset();
+ }
+ unpack() {
+ return new InnerStructT(this.a(), this.bb.createScalarList(this.b.bind(this), 13), this.c(), this.dUnderscore());
+ }
+ unpackTo(_o) {
+ _o.a = this.a();
+ _o.b = this.bb.createScalarList(this.b.bind(this), 13);
+ _o.c = this.c();
+ _o.dUnderscore = this.dUnderscore();
+ }
+}
+export class InnerStructT {
+ constructor(a = 0.0, b = [], c = 0, dUnderscore = BigInt('0')) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ this.dUnderscore = dUnderscore;
+ }
+ pack(builder) {
+ return InnerStruct.createInnerStruct(builder, this.a, this.b, this.c, this.dUnderscore);
+ }
+}
+export class OuterStruct {
+ constructor() {
+ this.bb = null;
+ this.bb_pos = 0;
+ }
+ __init(i, bb) {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+ }
+ a() {
+ return !!this.bb.readInt8(this.bb_pos);
+ }
+ b() {
+ return this.bb.readFloat64(this.bb_pos + 8);
+ }
+ cUnderscore(obj) {
+ return (obj || new InnerStruct()).__init(this.bb_pos + 16, this.bb);
+ }
+ d(index, obj) {
+ return (obj || new InnerStruct()).__init(this.bb_pos + 48 + index * 32, this.bb);
+ }
+ e(obj) {
+ return (obj || new InnerStruct()).__init(this.bb_pos + 144, this.bb);
+ }
+ f(index) {
+ return this.bb.readFloat64(this.bb_pos + 176 + index * 8);
+ }
+ static getFullyQualifiedName() {
+ return 'MyGame_Example_OuterStruct';
+ }
+ static sizeOf() {
+ return 208;
+ }
+ static createOuterStruct(builder, a, b, c_underscore_a, c_underscore_b, c_underscore_c, c_underscore_d_underscore, d, e_a, e_b, e_c, e_d_underscore, f) {
+ var _a, _b, _c;
+ builder.prep(8, 208);
+ for (let i = 3; i >= 0; --i) {
+ builder.writeFloat64(((_a = f === null || f === void 0 ? void 0 : f[i]) !== null && _a !== void 0 ? _a : 0));
+ }
+ builder.prep(8, 32);
+ builder.writeInt64(BigInt(e_d_underscore !== null && e_d_underscore !== void 0 ? e_d_underscore : 0));
+ builder.pad(2);
+ builder.writeInt8(e_c);
+ for (let i = 12; i >= 0; --i) {
+ builder.writeInt8(((_b = e_b === null || e_b === void 0 ? void 0 : e_b[i]) !== null && _b !== void 0 ? _b : 0));
+ }
+ builder.writeFloat64(e_a);
+ for (let i = 2; i >= 0; --i) {
+ const item = d === null || d === void 0 ? void 0 : d[i];
+ if (item instanceof InnerStructT) {
+ item.pack(builder);
+ continue;
+ }
+ InnerStruct.createInnerStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, item === null || item === void 0 ? void 0 : item.c, item === null || item === void 0 ? void 0 : item.dUnderscore);
+ }
+ builder.prep(8, 32);
+ builder.writeInt64(BigInt(c_underscore_d_underscore !== null && c_underscore_d_underscore !== void 0 ? c_underscore_d_underscore : 0));
+ builder.pad(2);
+ builder.writeInt8(c_underscore_c);
+ for (let i = 12; i >= 0; --i) {
+ builder.writeInt8(((_c = c_underscore_b === null || c_underscore_b === void 0 ? void 0 : c_underscore_b[i]) !== null && _c !== void 0 ? _c : 0));
+ }
+ builder.writeFloat64(c_underscore_a);
+ builder.writeFloat64(b);
+ builder.pad(7);
+ builder.writeInt8(Number(Boolean(a)));
+ return builder.offset();
+ }
+ unpack() {
+ return new OuterStructT(this.a(), this.b(), (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null), this.bb.createObjList(this.d.bind(this), 3), (this.e() !== null ? this.e().unpack() : null), this.bb.createScalarList(this.f.bind(this), 4));
+ }
+ unpackTo(_o) {
+ _o.a = this.a();
+ _o.b = this.b();
+ _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null);
+ _o.d = this.bb.createObjList(this.d.bind(this), 3);
+ _o.e = (this.e() !== null ? this.e().unpack() : null);
+ _o.f = this.bb.createScalarList(this.f.bind(this), 4);
+ }
+}
+export class OuterStructT {
+ constructor(a = false, b = 0.0, cUnderscore = null, d = [], e = null, f = []) {
+ this.a = a;
+ this.b = b;
+ this.cUnderscore = cUnderscore;
+ this.d = d;
+ this.e = e;
+ this.f = f;
+ }
+ pack(builder) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s;
+ return OuterStruct.createOuterStruct(builder, this.a, this.b, ((_b = (_a = this.cUnderscore) === null || _a === void 0 ? void 0 : _a.a) !== null && _b !== void 0 ? _b : 0), ((_d = (_c = this.cUnderscore) === null || _c === void 0 ? void 0 : _c.b) !== null && _d !== void 0 ? _d : []), ((_f = (_e = this.cUnderscore) === null || _e === void 0 ? void 0 : _e.c) !== null && _f !== void 0 ? _f : 0), ((_h = (_g = this.cUnderscore) === null || _g === void 0 ? void 0 : _g.dUnderscore) !== null && _h !== void 0 ? _h : BigInt(0)), this.d, ((_k = (_j = this.e) === null || _j === void 0 ? void 0 : _j.a) !== null && _k !== void 0 ? _k : 0), ((_m = (_l = this.e) === null || _l === void 0 ? void 0 : _l.b) !== null && _m !== void 0 ? _m : []), ((_q = (_p = this.e) === null || _p === void 0 ? void 0 : _p.c) !== null && _q !== void 0 ? _q : 0), ((_s = (_r = this.e) === null || _r === void 0 ? void 0 : _r.dUnderscore) !== null && _s !== void 0 ? _s : BigInt(0)), this.f);
+ }
+}
+export class NestedStruct {
+ constructor() {
+ this.bb = null;
+ this.bb_pos = 0;
+ }
+ __init(i, bb) {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+ }
+ a(index) {
+ return this.bb.readInt32(this.bb_pos + 0 + index * 4);
+ }
+ b() {
+ return this.bb.readInt8(this.bb_pos + 8);
+ }
+ cUnderscore(index) {
+ return this.bb.readInt8(this.bb_pos + 9 + index);
+ }
+ dOuter(index, obj) {
+ return (obj || new OuterStruct()).__init(this.bb_pos + 16 + index * 208, this.bb);
+ }
+ e(index) {
+ return this.bb.readInt64(this.bb_pos + 1056 + index * 8);
+ }
+ static getFullyQualifiedName() {
+ return 'MyGame_Example_NestedStruct';
+ }
+ static sizeOf() {
+ return 1072;
+ }
+ static createNestedStruct(builder, a, b, c_underscore, d_outer, e) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _t, _u, _v;
+ builder.prep(8, 1072);
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt64(BigInt((_a = e === null || e === void 0 ? void 0 : e[i]) !== null && _a !== void 0 ? _a : 0));
+ }
+ for (let i = 4; i >= 0; --i) {
+ const item = d_outer === null || d_outer === void 0 ? void 0 : d_outer[i];
+ if (item instanceof OuterStructT) {
+ item.pack(builder);
+ continue;
+ }
+ OuterStruct.createOuterStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, ((_c = (_b = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _b === void 0 ? void 0 : _b.a) !== null && _c !== void 0 ? _c : 0), ((_e = (_d = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _d === void 0 ? void 0 : _d.b) !== null && _e !== void 0 ? _e : []), ((_g = (_f = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _f === void 0 ? void 0 : _f.c) !== null && _g !== void 0 ? _g : 0), ((_j = (_h = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _h === void 0 ? void 0 : _h.dUnderscore) !== null && _j !== void 0 ? _j : BigInt(0)), item === null || item === void 0 ? void 0 : item.d, ((_l = (_k = item === null || item === void 0 ? void 0 : item.e) === null || _k === void 0 ? void 0 : _k.a) !== null && _l !== void 0 ? _l : 0), ((_p = (_m = item === null || item === void 0 ? void 0 : item.e) === null || _m === void 0 ? void 0 : _m.b) !== null && _p !== void 0 ? _p : []), ((_r = (_q = item === null || item === void 0 ? void 0 : item.e) === null || _q === void 0 ? void 0 : _q.c) !== null && _r !== void 0 ? _r : 0), ((_t = (_s = item === null || item === void 0 ? void 0 : item.e) === null || _s === void 0 ? void 0 : _s.dUnderscore) !== null && _t !== void 0 ? _t : BigInt(0)), item === null || item === void 0 ? void 0 : item.f);
+ }
+ builder.pad(5);
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt8(((_u = c_underscore === null || c_underscore === void 0 ? void 0 : c_underscore[i]) !== null && _u !== void 0 ? _u : 0));
+ }
+ builder.writeInt8(b);
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt32(((_v = a === null || a === void 0 ? void 0 : a[i]) !== null && _v !== void 0 ? _v : 0));
+ }
+ return builder.offset();
+ }
+ unpack() {
+ return new NestedStructT(this.bb.createScalarList(this.a.bind(this), 2), this.b(), this.bb.createScalarList(this.cUnderscore.bind(this), 2), this.bb.createObjList(this.dOuter.bind(this), 5), this.bb.createScalarList(this.e.bind(this), 2));
+ }
+ unpackTo(_o) {
+ _o.a = this.bb.createScalarList(this.a.bind(this), 2);
+ _o.b = this.b();
+ _o.cUnderscore = this.bb.createScalarList(this.cUnderscore.bind(this), 2);
+ _o.dOuter = this.bb.createObjList(this.dOuter.bind(this), 5);
+ _o.e = this.bb.createScalarList(this.e.bind(this), 2);
+ }
+}
+export class NestedStructT {
+ constructor(a = [], b = TestEnum.A, cUnderscore = [TestEnum.A, TestEnum.A], dOuter = [], e = []) {
+ this.a = a;
+ this.b = b;
+ this.cUnderscore = cUnderscore;
+ this.dOuter = dOuter;
+ this.e = e;
+ }
+ pack(builder) {
+ return NestedStruct.createNestedStruct(builder, this.a, this.b, this.cUnderscore, this.dOuter, this.e);
+ }
+}
+export class ArrayStruct {
+ constructor() {
+ this.bb = null;
+ this.bb_pos = 0;
+ }
+ __init(i, bb) {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+ }
+ aUnderscore() {
+ return this.bb.readFloat32(this.bb_pos);
+ }
+ bUnderscore(index) {
+ return this.bb.readInt32(this.bb_pos + 4 + index * 4);
+ }
+ c() {
+ return this.bb.readInt8(this.bb_pos + 64);
+ }
+ d(index, obj) {
+ return (obj || new NestedStruct()).__init(this.bb_pos + 72 + index * 1072, this.bb);
+ }
+ e() {
+ return this.bb.readInt32(this.bb_pos + 2216);
+ }
+ f(index, obj) {
+ return (obj || new OuterStruct()).__init(this.bb_pos + 2224 + index * 208, this.bb);
+ }
+ g(index) {
+ return this.bb.readInt64(this.bb_pos + 2640 + index * 8);
+ }
+ static getFullyQualifiedName() {
+ return 'MyGame_Example_ArrayStruct';
+ }
+ static sizeOf() {
+ return 2656;
+ }
+ static createArrayStruct(builder, a_underscore, b_underscore, c, d, e, f, g) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _t, _u;
+ builder.prep(8, 2656);
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt64(BigInt((_a = g === null || g === void 0 ? void 0 : g[i]) !== null && _a !== void 0 ? _a : 0));
+ }
+ for (let i = 1; i >= 0; --i) {
+ const item = f === null || f === void 0 ? void 0 : f[i];
+ if (item instanceof OuterStructT) {
+ item.pack(builder);
+ continue;
+ }
+ OuterStruct.createOuterStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, ((_c = (_b = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _b === void 0 ? void 0 : _b.a) !== null && _c !== void 0 ? _c : 0), ((_e = (_d = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _d === void 0 ? void 0 : _d.b) !== null && _e !== void 0 ? _e : []), ((_g = (_f = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _f === void 0 ? void 0 : _f.c) !== null && _g !== void 0 ? _g : 0), ((_j = (_h = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _h === void 0 ? void 0 : _h.dUnderscore) !== null && _j !== void 0 ? _j : BigInt(0)), item === null || item === void 0 ? void 0 : item.d, ((_l = (_k = item === null || item === void 0 ? void 0 : item.e) === null || _k === void 0 ? void 0 : _k.a) !== null && _l !== void 0 ? _l : 0), ((_p = (_m = item === null || item === void 0 ? void 0 : item.e) === null || _m === void 0 ? void 0 : _m.b) !== null && _p !== void 0 ? _p : []), ((_r = (_q = item === null || item === void 0 ? void 0 : item.e) === null || _q === void 0 ? void 0 : _q.c) !== null && _r !== void 0 ? _r : 0), ((_t = (_s = item === null || item === void 0 ? void 0 : item.e) === null || _s === void 0 ? void 0 : _s.dUnderscore) !== null && _t !== void 0 ? _t : BigInt(0)), item === null || item === void 0 ? void 0 : item.f);
+ }
+ builder.pad(4);
+ builder.writeInt32(e);
+ for (let i = 1; i >= 0; --i) {
+ const item = d === null || d === void 0 ? void 0 : d[i];
+ if (item instanceof NestedStructT) {
+ item.pack(builder);
+ continue;
+ }
+ NestedStruct.createNestedStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, item === null || item === void 0 ? void 0 : item.cUnderscore, item === null || item === void 0 ? void 0 : item.dOuter, item === null || item === void 0 ? void 0 : item.e);
+ }
+ builder.pad(7);
+ builder.writeInt8(c);
+ for (let i = 14; i >= 0; --i) {
+ builder.writeInt32(((_u = b_underscore === null || b_underscore === void 0 ? void 0 : b_underscore[i]) !== null && _u !== void 0 ? _u : 0));
+ }
+ builder.writeFloat32(a_underscore);
+ return builder.offset();
+ }
+ unpack() {
+ return new ArrayStructT(this.aUnderscore(), this.bb.createScalarList(this.bUnderscore.bind(this), 15), this.c(), this.bb.createObjList(this.d.bind(this), 2), this.e(), this.bb.createObjList(this.f.bind(this), 2), this.bb.createScalarList(this.g.bind(this), 2));
+ }
+ unpackTo(_o) {
+ _o.aUnderscore = this.aUnderscore();
+ _o.bUnderscore = this.bb.createScalarList(this.bUnderscore.bind(this), 15);
+ _o.c = this.c();
+ _o.d = this.bb.createObjList(this.d.bind(this), 2);
+ _o.e = this.e();
+ _o.f = this.bb.createObjList(this.f.bind(this), 2);
+ _o.g = this.bb.createScalarList(this.g.bind(this), 2);
+ }
+}
+export class ArrayStructT {
+ constructor(aUnderscore = 0.0, bUnderscore = [], c = 0, d = [], e = 0, f = [], g = []) {
+ this.aUnderscore = aUnderscore;
+ this.bUnderscore = bUnderscore;
+ this.c = c;
+ this.d = d;
+ this.e = e;
+ this.f = f;
+ this.g = g;
+ }
+ pack(builder) {
+ return ArrayStruct.createArrayStruct(builder, this.aUnderscore, this.bUnderscore, this.c, this.d, this.e, this.f, this.g);
+ }
+}
+export class ArrayTable {
+ constructor() {
+ this.bb = null;
+ this.bb_pos = 0;
+ }
+ __init(i, bb) {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+ }
+ static getRootAsArrayTable(bb, obj) {
+ return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
+ }
+ static getSizePrefixedRootAsArrayTable(bb, obj) {
+ bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
+ return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
+ }
+ static bufferHasIdentifier(bb) {
+ return bb.__has_identifier('RHUB');
+ }
+ a(optionalEncoding) {
+ const offset = this.bb.__offset(this.bb_pos, 4);
+ return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
+ }
+ cUnderscore(obj) {
+ const offset = this.bb.__offset(this.bb_pos, 6);
+ return offset ? (obj || new ArrayStruct()).__init(this.bb_pos + offset, this.bb) : null;
+ }
+ static getFullyQualifiedName() {
+ return 'MyGame_Example_ArrayTable';
+ }
+ static startArrayTable(builder) {
+ builder.startObject(2);
+ }
+ static addA(builder, aOffset) {
+ builder.addFieldOffset(0, aOffset, 0);
+ }
+ static addCUnderscore(builder, cUnderscoreOffset) {
+ builder.addFieldStruct(1, cUnderscoreOffset, 0);
+ }
+ static endArrayTable(builder) {
+ const offset = builder.endObject();
+ return offset;
+ }
+ static finishArrayTableBuffer(builder, offset) {
+ builder.finish(offset, 'RHUB');
+ }
+ static finishSizePrefixedArrayTableBuffer(builder, offset) {
+ builder.finish(offset, 'RHUB', true);
+ }
+ unpack() {
+ return new ArrayTableT(this.a(), (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null));
+ }
+ unpackTo(_o) {
+ _o.a = this.a();
+ _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null);
+ }
+}
+export class ArrayTableT {
+ constructor(a = null, cUnderscore = null) {
+ this.a = a;
+ this.cUnderscore = cUnderscore;
+ }
+ pack(builder) {
+ const a = (this.a !== null ? builder.createString(this.a) : 0);
+ ArrayTable.startArrayTable(builder);
+ ArrayTable.addA(builder, a);
+ ArrayTable.addCUnderscore(builder, (this.cUnderscore !== null ? this.cUnderscore.pack(builder) : 0));
+ return ArrayTable.endArrayTable(builder);
+ }
+}
diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts b/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts
new file mode 100644
index 0000000..eea0ed9
--- /dev/null
+++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts
@@ -0,0 +1,626 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+
+import * as flatbuffers from 'flatbuffers';
+
+
+export enum TestEnum {
+ A = 0,
+ B = 1,
+ C = 2
+}
+
+export class InnerStruct implements flatbuffers.IUnpackableObject<InnerStructT> {
+ bb: flatbuffers.ByteBuffer|null = null;
+ bb_pos = 0;
+ __init(i:number, bb:flatbuffers.ByteBuffer):InnerStruct {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+}
+
+a():number {
+ return this.bb!.readFloat64(this.bb_pos);
+}
+
+b(index: number):number|null {
+ return this.bb!.readUint8(this.bb_pos + 8 + index);
+}
+
+c():number {
+ return this.bb!.readInt8(this.bb_pos + 21);
+}
+
+dUnderscore():bigint {
+ return this.bb!.readInt64(this.bb_pos + 24);
+}
+
+static getFullyQualifiedName():string {
+ return 'MyGame_Example_InnerStruct';
+}
+
+static sizeOf():number {
+ return 32;
+}
+
+static createInnerStruct(builder:flatbuffers.Builder, a: number, b: number[]|null, c: number, d_underscore: bigint):flatbuffers.Offset {
+ builder.prep(8, 32);
+ builder.writeInt64(BigInt(d_underscore ?? 0));
+ builder.pad(2);
+ builder.writeInt8(c);
+
+ for (let i = 12; i >= 0; --i) {
+ builder.writeInt8((b?.[i] ?? 0));
+
+ }
+
+ builder.writeFloat64(a);
+ return builder.offset();
+}
+
+
+unpack(): InnerStructT {
+ return new InnerStructT(
+ this.a(),
+ this.bb!.createScalarList<number>(this.b.bind(this), 13),
+ this.c(),
+ this.dUnderscore()
+ );
+}
+
+
+unpackTo(_o: InnerStructT): void {
+ _o.a = this.a();
+ _o.b = this.bb!.createScalarList<number>(this.b.bind(this), 13);
+ _o.c = this.c();
+ _o.dUnderscore = this.dUnderscore();
+}
+}
+
+export class InnerStructT implements flatbuffers.IGeneratedObject {
+constructor(
+ public a: number = 0.0,
+ public b: (number)[] = [],
+ public c: number = 0,
+ public dUnderscore: bigint = BigInt('0')
+){}
+
+
+pack(builder:flatbuffers.Builder): flatbuffers.Offset {
+ return InnerStruct.createInnerStruct(builder,
+ this.a,
+ this.b,
+ this.c,
+ this.dUnderscore
+ );
+}
+}
+
+export class OuterStruct implements flatbuffers.IUnpackableObject<OuterStructT> {
+ bb: flatbuffers.ByteBuffer|null = null;
+ bb_pos = 0;
+ __init(i:number, bb:flatbuffers.ByteBuffer):OuterStruct {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+}
+
+a():boolean {
+ return !!this.bb!.readInt8(this.bb_pos);
+}
+
+b():number {
+ return this.bb!.readFloat64(this.bb_pos + 8);
+}
+
+cUnderscore(obj?:InnerStruct):InnerStruct|null {
+ return (obj || new InnerStruct()).__init(this.bb_pos + 16, this.bb!);
+}
+
+d(index: number, obj?:InnerStruct):InnerStruct|null {
+ return (obj || new InnerStruct()).__init(this.bb_pos + 48 + index * 32, this.bb!);
+}
+
+e(obj?:InnerStruct):InnerStruct|null {
+ return (obj || new InnerStruct()).__init(this.bb_pos + 144, this.bb!);
+}
+
+f(index: number):number|null {
+ return this.bb!.readFloat64(this.bb_pos + 176 + index * 8);
+}
+
+static getFullyQualifiedName():string {
+ return 'MyGame_Example_OuterStruct';
+}
+
+static sizeOf():number {
+ return 208;
+}
+
+static createOuterStruct(builder:flatbuffers.Builder, a: boolean, b: number, c_underscore_a: number, c_underscore_b: number[]|null, c_underscore_c: number, c_underscore_d_underscore: bigint, d: (any|InnerStructT)[]|null, e_a: number, e_b: number[]|null, e_c: number, e_d_underscore: bigint, f: number[]|null):flatbuffers.Offset {
+ builder.prep(8, 208);
+
+ for (let i = 3; i >= 0; --i) {
+ builder.writeFloat64((f?.[i] ?? 0));
+
+ }
+
+ builder.prep(8, 32);
+ builder.writeInt64(BigInt(e_d_underscore ?? 0));
+ builder.pad(2);
+ builder.writeInt8(e_c);
+
+ for (let i = 12; i >= 0; --i) {
+ builder.writeInt8((e_b?.[i] ?? 0));
+
+ }
+
+ builder.writeFloat64(e_a);
+
+ for (let i = 2; i >= 0; --i) {
+ const item = d?.[i];
+
+ if (item instanceof InnerStructT) {
+ item.pack(builder);
+ continue;
+ }
+
+ InnerStruct.createInnerStruct(builder,
+ item?.a,
+ item?.b,
+ item?.c,
+ item?.dUnderscore
+ );
+ }
+
+ builder.prep(8, 32);
+ builder.writeInt64(BigInt(c_underscore_d_underscore ?? 0));
+ builder.pad(2);
+ builder.writeInt8(c_underscore_c);
+
+ for (let i = 12; i >= 0; --i) {
+ builder.writeInt8((c_underscore_b?.[i] ?? 0));
+
+ }
+
+ builder.writeFloat64(c_underscore_a);
+ builder.writeFloat64(b);
+ builder.pad(7);
+ builder.writeInt8(Number(Boolean(a)));
+ return builder.offset();
+}
+
+
+unpack(): OuterStructT {
+ return new OuterStructT(
+ this.a(),
+ this.b(),
+ (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null),
+ this.bb!.createObjList<InnerStruct, InnerStructT>(this.d.bind(this), 3),
+ (this.e() !== null ? this.e()!.unpack() : null),
+ this.bb!.createScalarList<number>(this.f.bind(this), 4)
+ );
+}
+
+
+unpackTo(_o: OuterStructT): void {
+ _o.a = this.a();
+ _o.b = this.b();
+ _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null);
+ _o.d = this.bb!.createObjList<InnerStruct, InnerStructT>(this.d.bind(this), 3);
+ _o.e = (this.e() !== null ? this.e()!.unpack() : null);
+ _o.f = this.bb!.createScalarList<number>(this.f.bind(this), 4);
+}
+}
+
+export class OuterStructT implements flatbuffers.IGeneratedObject {
+constructor(
+ public a: boolean = false,
+ public b: number = 0.0,
+ public cUnderscore: InnerStructT|null = null,
+ public d: (InnerStructT)[] = [],
+ public e: InnerStructT|null = null,
+ public f: (number)[] = []
+){}
+
+
+pack(builder:flatbuffers.Builder): flatbuffers.Offset {
+ return OuterStruct.createOuterStruct(builder,
+ this.a,
+ this.b,
+ (this.cUnderscore?.a ?? 0),
+ (this.cUnderscore?.b ?? []),
+ (this.cUnderscore?.c ?? 0),
+ (this.cUnderscore?.dUnderscore ?? BigInt(0)),
+ this.d,
+ (this.e?.a ?? 0),
+ (this.e?.b ?? []),
+ (this.e?.c ?? 0),
+ (this.e?.dUnderscore ?? BigInt(0)),
+ this.f
+ );
+}
+}
+
+export class NestedStruct implements flatbuffers.IUnpackableObject<NestedStructT> {
+ bb: flatbuffers.ByteBuffer|null = null;
+ bb_pos = 0;
+ __init(i:number, bb:flatbuffers.ByteBuffer):NestedStruct {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+}
+
+a(index: number):number|null {
+ return this.bb!.readInt32(this.bb_pos + 0 + index * 4);
+}
+
+b():TestEnum {
+ return this.bb!.readInt8(this.bb_pos + 8);
+}
+
+cUnderscore(index: number):TestEnum|null {
+ return this.bb!.readInt8(this.bb_pos + 9 + index);
+}
+
+dOuter(index: number, obj?:OuterStruct):OuterStruct|null {
+ return (obj || new OuterStruct()).__init(this.bb_pos + 16 + index * 208, this.bb!);
+}
+
+e(index: number):bigint|null {
+ return this.bb!.readInt64(this.bb_pos + 1056 + index * 8);
+}
+
+static getFullyQualifiedName():string {
+ return 'MyGame_Example_NestedStruct';
+}
+
+static sizeOf():number {
+ return 1072;
+}
+
+static createNestedStruct(builder:flatbuffers.Builder, a: number[]|null, b: TestEnum, c_underscore: number[]|null, d_outer: (any|OuterStructT)[]|null, e: bigint[]|null):flatbuffers.Offset {
+ builder.prep(8, 1072);
+
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt64(BigInt(e?.[i] ?? 0));
+ }
+
+
+ for (let i = 4; i >= 0; --i) {
+ const item = d_outer?.[i];
+
+ if (item instanceof OuterStructT) {
+ item.pack(builder);
+ continue;
+ }
+
+ OuterStruct.createOuterStruct(builder,
+ item?.a,
+ item?.b,
+ (item?.cUnderscore?.a ?? 0),
+ (item?.cUnderscore?.b ?? []),
+ (item?.cUnderscore?.c ?? 0),
+ (item?.cUnderscore?.dUnderscore ?? BigInt(0)),
+ item?.d,
+ (item?.e?.a ?? 0),
+ (item?.e?.b ?? []),
+ (item?.e?.c ?? 0),
+ (item?.e?.dUnderscore ?? BigInt(0)),
+ item?.f
+ );
+ }
+
+ builder.pad(5);
+
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt8((c_underscore?.[i] ?? 0));
+
+ }
+
+ builder.writeInt8(b);
+
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt32((a?.[i] ?? 0));
+
+ }
+
+ return builder.offset();
+}
+
+
+unpack(): NestedStructT {
+ return new NestedStructT(
+ this.bb!.createScalarList<number>(this.a.bind(this), 2),
+ this.b(),
+ this.bb!.createScalarList<TestEnum>(this.cUnderscore.bind(this), 2),
+ this.bb!.createObjList<OuterStruct, OuterStructT>(this.dOuter.bind(this), 5),
+ this.bb!.createScalarList<bigint>(this.e.bind(this), 2)
+ );
+}
+
+
+unpackTo(_o: NestedStructT): void {
+ _o.a = this.bb!.createScalarList<number>(this.a.bind(this), 2);
+ _o.b = this.b();
+ _o.cUnderscore = this.bb!.createScalarList<TestEnum>(this.cUnderscore.bind(this), 2);
+ _o.dOuter = this.bb!.createObjList<OuterStruct, OuterStructT>(this.dOuter.bind(this), 5);
+ _o.e = this.bb!.createScalarList<bigint>(this.e.bind(this), 2);
+}
+}
+
+export class NestedStructT implements flatbuffers.IGeneratedObject {
+constructor(
+ public a: (number)[] = [],
+ public b: TestEnum = TestEnum.A,
+ public cUnderscore: (TestEnum)[] = [TestEnum.A, TestEnum.A],
+ public dOuter: (OuterStructT)[] = [],
+ public e: (bigint)[] = []
+){}
+
+
+pack(builder:flatbuffers.Builder): flatbuffers.Offset {
+ return NestedStruct.createNestedStruct(builder,
+ this.a,
+ this.b,
+ this.cUnderscore,
+ this.dOuter,
+ this.e
+ );
+}
+}
+
+export class ArrayStruct implements flatbuffers.IUnpackableObject<ArrayStructT> {
+ bb: flatbuffers.ByteBuffer|null = null;
+ bb_pos = 0;
+ __init(i:number, bb:flatbuffers.ByteBuffer):ArrayStruct {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+}
+
+aUnderscore():number {
+ return this.bb!.readFloat32(this.bb_pos);
+}
+
+bUnderscore(index: number):number|null {
+ return this.bb!.readInt32(this.bb_pos + 4 + index * 4);
+}
+
+c():number {
+ return this.bb!.readInt8(this.bb_pos + 64);
+}
+
+d(index: number, obj?:NestedStruct):NestedStruct|null {
+ return (obj || new NestedStruct()).__init(this.bb_pos + 72 + index * 1072, this.bb!);
+}
+
+e():number {
+ return this.bb!.readInt32(this.bb_pos + 2216);
+}
+
+f(index: number, obj?:OuterStruct):OuterStruct|null {
+ return (obj || new OuterStruct()).__init(this.bb_pos + 2224 + index * 208, this.bb!);
+}
+
+g(index: number):bigint|null {
+ return this.bb!.readInt64(this.bb_pos + 2640 + index * 8);
+}
+
+static getFullyQualifiedName():string {
+ return 'MyGame_Example_ArrayStruct';
+}
+
+static sizeOf():number {
+ return 2656;
+}
+
+static createArrayStruct(builder:flatbuffers.Builder, a_underscore: number, b_underscore: number[]|null, c: number, d: (any|NestedStructT)[]|null, e: number, f: (any|OuterStructT)[]|null, g: bigint[]|null):flatbuffers.Offset {
+ builder.prep(8, 2656);
+
+ for (let i = 1; i >= 0; --i) {
+ builder.writeInt64(BigInt(g?.[i] ?? 0));
+ }
+
+
+ for (let i = 1; i >= 0; --i) {
+ const item = f?.[i];
+
+ if (item instanceof OuterStructT) {
+ item.pack(builder);
+ continue;
+ }
+
+ OuterStruct.createOuterStruct(builder,
+ item?.a,
+ item?.b,
+ (item?.cUnderscore?.a ?? 0),
+ (item?.cUnderscore?.b ?? []),
+ (item?.cUnderscore?.c ?? 0),
+ (item?.cUnderscore?.dUnderscore ?? BigInt(0)),
+ item?.d,
+ (item?.e?.a ?? 0),
+ (item?.e?.b ?? []),
+ (item?.e?.c ?? 0),
+ (item?.e?.dUnderscore ?? BigInt(0)),
+ item?.f
+ );
+ }
+
+ builder.pad(4);
+ builder.writeInt32(e);
+
+ for (let i = 1; i >= 0; --i) {
+ const item = d?.[i];
+
+ if (item instanceof NestedStructT) {
+ item.pack(builder);
+ continue;
+ }
+
+ NestedStruct.createNestedStruct(builder,
+ item?.a,
+ item?.b,
+ item?.cUnderscore,
+ item?.dOuter,
+ item?.e
+ );
+ }
+
+ builder.pad(7);
+ builder.writeInt8(c);
+
+ for (let i = 14; i >= 0; --i) {
+ builder.writeInt32((b_underscore?.[i] ?? 0));
+
+ }
+
+ builder.writeFloat32(a_underscore);
+ return builder.offset();
+}
+
+
+unpack(): ArrayStructT {
+ return new ArrayStructT(
+ this.aUnderscore(),
+ this.bb!.createScalarList<number>(this.bUnderscore.bind(this), 15),
+ this.c(),
+ this.bb!.createObjList<NestedStruct, NestedStructT>(this.d.bind(this), 2),
+ this.e(),
+ this.bb!.createObjList<OuterStruct, OuterStructT>(this.f.bind(this), 2),
+ this.bb!.createScalarList<bigint>(this.g.bind(this), 2)
+ );
+}
+
+
+unpackTo(_o: ArrayStructT): void {
+ _o.aUnderscore = this.aUnderscore();
+ _o.bUnderscore = this.bb!.createScalarList<number>(this.bUnderscore.bind(this), 15);
+ _o.c = this.c();
+ _o.d = this.bb!.createObjList<NestedStruct, NestedStructT>(this.d.bind(this), 2);
+ _o.e = this.e();
+ _o.f = this.bb!.createObjList<OuterStruct, OuterStructT>(this.f.bind(this), 2);
+ _o.g = this.bb!.createScalarList<bigint>(this.g.bind(this), 2);
+}
+}
+
+export class ArrayStructT implements flatbuffers.IGeneratedObject {
+constructor(
+ public aUnderscore: number = 0.0,
+ public bUnderscore: (number)[] = [],
+ public c: number = 0,
+ public d: (NestedStructT)[] = [],
+ public e: number = 0,
+ public f: (OuterStructT)[] = [],
+ public g: (bigint)[] = []
+){}
+
+
+pack(builder:flatbuffers.Builder): flatbuffers.Offset {
+ return ArrayStruct.createArrayStruct(builder,
+ this.aUnderscore,
+ this.bUnderscore,
+ this.c,
+ this.d,
+ this.e,
+ this.f,
+ this.g
+ );
+}
+}
+
+export class ArrayTable implements flatbuffers.IUnpackableObject<ArrayTableT> {
+ bb: flatbuffers.ByteBuffer|null = null;
+ bb_pos = 0;
+ __init(i:number, bb:flatbuffers.ByteBuffer):ArrayTable {
+ this.bb_pos = i;
+ this.bb = bb;
+ return this;
+}
+
+static getRootAsArrayTable(bb:flatbuffers.ByteBuffer, obj?:ArrayTable):ArrayTable {
+ return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
+}
+
+static getSizePrefixedRootAsArrayTable(bb:flatbuffers.ByteBuffer, obj?:ArrayTable):ArrayTable {
+ bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
+ return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
+}
+
+static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean {
+ return bb.__has_identifier('RHUB');
+}
+
+a():string|null
+a(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null
+a(optionalEncoding?:any):string|Uint8Array|null {
+ const offset = this.bb!.__offset(this.bb_pos, 4);
+ return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;
+}
+
+cUnderscore(obj?:ArrayStruct):ArrayStruct|null {
+ const offset = this.bb!.__offset(this.bb_pos, 6);
+ return offset ? (obj || new ArrayStruct()).__init(this.bb_pos + offset, this.bb!) : null;
+}
+
+static getFullyQualifiedName():string {
+ return 'MyGame_Example_ArrayTable';
+}
+
+static startArrayTable(builder:flatbuffers.Builder) {
+ builder.startObject(2);
+}
+
+static addA(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset) {
+ builder.addFieldOffset(0, aOffset, 0);
+}
+
+static addCUnderscore(builder:flatbuffers.Builder, cUnderscoreOffset:flatbuffers.Offset) {
+ builder.addFieldStruct(1, cUnderscoreOffset, 0);
+}
+
+static endArrayTable(builder:flatbuffers.Builder):flatbuffers.Offset {
+ const offset = builder.endObject();
+ return offset;
+}
+
+static finishArrayTableBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {
+ builder.finish(offset, 'RHUB');
+}
+
+static finishSizePrefixedArrayTableBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {
+ builder.finish(offset, 'RHUB', true);
+}
+
+
+unpack(): ArrayTableT {
+ return new ArrayTableT(
+ this.a(),
+ (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null)
+ );
+}
+
+
+unpackTo(_o: ArrayTableT): void {
+ _o.a = this.a();
+ _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null);
+}
+}
+
+export class ArrayTableT implements flatbuffers.IGeneratedObject {
+constructor(
+ public a: string|Uint8Array|null = null,
+ public cUnderscore: ArrayStructT|null = null
+){}
+
+
+pack(builder:flatbuffers.Builder): flatbuffers.Offset {
+ const a = (this.a !== null ? builder.createString(this.a!) : 0);
+
+ ArrayTable.startArrayTable(builder);
+ ArrayTable.addA(builder, a);
+ ArrayTable.addCUnderscore(builder, (this.cUnderscore !== null ? this.cUnderscore!.pack(builder) : 0));
+
+ return ArrayTable.endArrayTable(builder);
+}
+}
+
diff --git a/tests/ts/monsterdata_javascript_wire.mon b/tests/ts/monsterdata_javascript_wire.mon
index c6020a2..8e270b3 100644
--- a/tests/ts/monsterdata_javascript_wire.mon
+++ b/tests/ts/monsterdata_javascript_wire.mon
Binary files differ
diff --git a/tests/ts/my-game/example/ability.ts b/tests/ts/my-game/example/ability.ts
index 36b0eb8..b0bea8f 100644
--- a/tests/ts/my-game/example/ability.ts
+++ b/tests/ts/my-game/example/ability.ts
@@ -4,7 +4,7 @@
-export class Ability {
+export class Ability implements flatbuffers.IUnpackableObject<AbilityT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Ability {
@@ -61,7 +61,7 @@
}
}
-export class AbilityT {
+export class AbilityT implements flatbuffers.IGeneratedObject {
constructor(
public id: number = 0,
public distance: number = 0
diff --git a/tests/ts/my-game/example/monster.js b/tests/ts/my-game/example/monster.js
index e4ef970..97c9399 100644
--- a/tests/ts/my-game/example/monster.js
+++ b/tests/ts/my-game/example/monster.js
@@ -526,11 +526,95 @@
this.bb.writeUint64(this.bb_pos + offset, value);
return true;
}
+ nanDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 112);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : NaN;
+ }
+ mutate_nan_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 112);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
+ infDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 114);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+ }
+ mutate_inf_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 114);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
+ positiveInfDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 116);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+ }
+ mutate_positive_inf_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 116);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
+ infinityDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 118);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+ }
+ mutate_infinity_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 118);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
+ positiveInfinityDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 120);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+ }
+ mutate_positive_infinity_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 120);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
+ negativeInfDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 122);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : -Infinity;
+ }
+ mutate_negative_inf_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 122);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
+ negativeInfinityDefault() {
+ const offset = this.bb.__offset(this.bb_pos, 124);
+ return offset ? this.bb.readFloat32(this.bb_pos + offset) : -Infinity;
+ }
+ mutate_negative_infinity_default(value) {
+ const offset = this.bb.__offset(this.bb_pos, 124);
+ if (offset === 0) {
+ return false;
+ }
+ this.bb.writeFloat32(this.bb_pos + offset, value);
+ return true;
+ }
static getFullyQualifiedName() {
return 'MyGame_Example_Monster';
}
static startMonster(builder) {
- builder.startObject(54);
+ builder.startObject(61);
}
static addPos(builder, posOffset) {
builder.addFieldStruct(0, posOffset, 0);
@@ -870,6 +954,27 @@
static addLongEnumNormalDefault(builder, longEnumNormalDefault) {
builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2'));
}
+ static addNanDefault(builder, nanDefault) {
+ builder.addFieldFloat32(54, nanDefault, NaN);
+ }
+ static addInfDefault(builder, infDefault) {
+ builder.addFieldFloat32(55, infDefault, Infinity);
+ }
+ static addPositiveInfDefault(builder, positiveInfDefault) {
+ builder.addFieldFloat32(56, positiveInfDefault, Infinity);
+ }
+ static addInfinityDefault(builder, infinityDefault) {
+ builder.addFieldFloat32(57, infinityDefault, Infinity);
+ }
+ static addPositiveInfinityDefault(builder, positiveInfinityDefault) {
+ builder.addFieldFloat32(58, positiveInfinityDefault, Infinity);
+ }
+ static addNegativeInfDefault(builder, negativeInfDefault) {
+ builder.addFieldFloat32(59, negativeInfDefault, -Infinity);
+ }
+ static addNegativeInfinityDefault(builder, negativeInfinityDefault) {
+ builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity);
+ }
static endMonster(builder) {
const offset = builder.endObject();
builder.requiredField(offset, 10); // name
@@ -889,24 +994,24 @@
}
unpack() {
return new MonsterT((this.pos() !== null ? this.pos().unpack() : null), this.mana(), this.hp(), this.name(), this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength()), this.color(), this.testType(), (() => {
- let temp = unionToAny(this.testType(), this.test.bind(this));
+ const temp = unionToAny(this.testType(), this.test.bind(this));
if (temp === null) {
return null;
}
return temp.unpack();
})(), this.bb.createObjList(this.test4.bind(this), this.test4Length()), this.bb.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()), this.bb.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()), (this.enemy() !== null ? this.enemy().unpack() : null), this.bb.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()), (this.testempty() !== null ? this.testempty().unpack() : null), this.testbool(), this.testhashs32Fnv1(), this.testhashu32Fnv1(), this.testhashs64Fnv1(), this.testhashu64Fnv1(), this.testhashs32Fnv1a(), this.testhashu32Fnv1a(), this.testhashs64Fnv1a(), this.testhashu64Fnv1a(), this.bb.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()), this.testf(), this.testf2(), this.testf3(), this.bb.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()), this.bb.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()), this.bb.createScalarList(this.flex.bind(this), this.flexLength()), this.bb.createObjList(this.test5.bind(this), this.test5Length()), this.bb.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()), this.bb.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()), (this.parentNamespaceTest() !== null ? this.parentNamespaceTest().unpack() : null), this.bb.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()), this.singleWeakReference(), this.bb.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()), this.bb.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()), this.coOwningReference(), this.bb.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()), this.nonOwningReference(), this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()), this.anyUniqueType(), (() => {
- let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
+ const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
if (temp === null) {
return null;
}
return temp.unpack();
})(), this.anyAmbiguousType(), (() => {
- let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
+ const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
if (temp === null) {
return null;
}
return temp.unpack();
- })(), this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), this.signedEnum(), this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), (this.nativeInline() !== null ? this.nativeInline().unpack() : null), this.longEnumNonEnumDefault(), this.longEnumNormalDefault());
+ })(), this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), this.signedEnum(), this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), (this.nativeInline() !== null ? this.nativeInline().unpack() : null), this.longEnumNonEnumDefault(), this.longEnumNormalDefault(), this.nanDefault(), this.infDefault(), this.positiveInfDefault(), this.infinityDefault(), this.positiveInfinityDefault(), this.negativeInfDefault(), this.negativeInfinityDefault());
}
unpackTo(_o) {
_o.pos = (this.pos() !== null ? this.pos().unpack() : null);
@@ -917,7 +1022,7 @@
_o.color = this.color();
_o.testType = this.testType();
_o.test = (() => {
- let temp = unionToAny(this.testType(), this.test.bind(this));
+ const temp = unionToAny(this.testType(), this.test.bind(this));
if (temp === null) {
return null;
}
@@ -959,7 +1064,7 @@
_o.vectorOfNonOwningReferences = this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength());
_o.anyUniqueType = this.anyUniqueType();
_o.anyUnique = (() => {
- let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
+ const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
if (temp === null) {
return null;
}
@@ -967,7 +1072,7 @@
})();
_o.anyAmbiguousType = this.anyAmbiguousType();
_o.anyAmbiguous = (() => {
- let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
+ const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
if (temp === null) {
return null;
}
@@ -980,10 +1085,17 @@
_o.nativeInline = (this.nativeInline() !== null ? this.nativeInline().unpack() : null);
_o.longEnumNonEnumDefault = this.longEnumNonEnumDefault();
_o.longEnumNormalDefault = this.longEnumNormalDefault();
+ _o.nanDefault = this.nanDefault();
+ _o.infDefault = this.infDefault();
+ _o.positiveInfDefault = this.positiveInfDefault();
+ _o.infinityDefault = this.infinityDefault();
+ _o.positiveInfinityDefault = this.positiveInfinityDefault();
+ _o.negativeInfDefault = this.negativeInfDefault();
+ _o.negativeInfinityDefault = this.negativeInfinityDefault();
}
}
export class MonsterT {
- constructor(pos = null, mana = 150, hp = 100, name = null, inventory = [], color = Color.Blue, testType = Any.NONE, test = null, test4 = [], testarrayofstring = [], testarrayoftables = [], enemy = null, testnestedflatbuffer = [], testempty = null, testbool = false, testhashs32Fnv1 = 0, testhashu32Fnv1 = 0, testhashs64Fnv1 = BigInt('0'), testhashu64Fnv1 = BigInt('0'), testhashs32Fnv1a = 0, testhashu32Fnv1a = 0, testhashs64Fnv1a = BigInt('0'), testhashu64Fnv1a = BigInt('0'), testarrayofbools = [], testf = 3.14159, testf2 = 3.0, testf3 = 0.0, testarrayofstring2 = [], testarrayofsortedstruct = [], flex = [], test5 = [], vectorOfLongs = [], vectorOfDoubles = [], parentNamespaceTest = null, vectorOfReferrables = [], singleWeakReference = BigInt('0'), vectorOfWeakReferences = [], vectorOfStrongReferrables = [], coOwningReference = BigInt('0'), vectorOfCoOwningReferences = [], nonOwningReference = BigInt('0'), vectorOfNonOwningReferences = [], anyUniqueType = AnyUniqueAliases.NONE, anyUnique = null, anyAmbiguousType = AnyAmbiguousAliases.NONE, anyAmbiguous = null, vectorOfEnums = [], signedEnum = Race.None, testrequirednestedflatbuffer = [], scalarKeySortedTables = [], nativeInline = null, longEnumNonEnumDefault = BigInt('0'), longEnumNormalDefault = BigInt('2')) {
+ constructor(pos = null, mana = 150, hp = 100, name = null, inventory = [], color = Color.Blue, testType = Any.NONE, test = null, test4 = [], testarrayofstring = [], testarrayoftables = [], enemy = null, testnestedflatbuffer = [], testempty = null, testbool = false, testhashs32Fnv1 = 0, testhashu32Fnv1 = 0, testhashs64Fnv1 = BigInt('0'), testhashu64Fnv1 = BigInt('0'), testhashs32Fnv1a = 0, testhashu32Fnv1a = 0, testhashs64Fnv1a = BigInt('0'), testhashu64Fnv1a = BigInt('0'), testarrayofbools = [], testf = 3.14159, testf2 = 3.0, testf3 = 0.0, testarrayofstring2 = [], testarrayofsortedstruct = [], flex = [], test5 = [], vectorOfLongs = [], vectorOfDoubles = [], parentNamespaceTest = null, vectorOfReferrables = [], singleWeakReference = BigInt('0'), vectorOfWeakReferences = [], vectorOfStrongReferrables = [], coOwningReference = BigInt('0'), vectorOfCoOwningReferences = [], nonOwningReference = BigInt('0'), vectorOfNonOwningReferences = [], anyUniqueType = AnyUniqueAliases.NONE, anyUnique = null, anyAmbiguousType = AnyAmbiguousAliases.NONE, anyAmbiguous = null, vectorOfEnums = [], signedEnum = Race.None, testrequirednestedflatbuffer = [], scalarKeySortedTables = [], nativeInline = null, longEnumNonEnumDefault = BigInt('0'), longEnumNormalDefault = BigInt('2'), nanDefault = NaN, infDefault = Infinity, positiveInfDefault = Infinity, infinityDefault = Infinity, positiveInfinityDefault = Infinity, negativeInfDefault = -Infinity, negativeInfinityDefault = -Infinity) {
this.pos = pos;
this.mana = mana;
this.hp = hp;
@@ -1037,6 +1149,13 @@
this.nativeInline = nativeInline;
this.longEnumNonEnumDefault = longEnumNonEnumDefault;
this.longEnumNormalDefault = longEnumNormalDefault;
+ this.nanDefault = nanDefault;
+ this.infDefault = infDefault;
+ this.positiveInfDefault = positiveInfDefault;
+ this.infinityDefault = infinityDefault;
+ this.positiveInfinityDefault = positiveInfinityDefault;
+ this.negativeInfDefault = negativeInfDefault;
+ this.negativeInfinityDefault = negativeInfinityDefault;
}
pack(builder) {
const name = (this.name !== null ? builder.createString(this.name) : 0);
@@ -1120,6 +1239,13 @@
Monster.addNativeInline(builder, (this.nativeInline !== null ? this.nativeInline.pack(builder) : 0));
Monster.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault);
Monster.addLongEnumNormalDefault(builder, this.longEnumNormalDefault);
+ Monster.addNanDefault(builder, this.nanDefault);
+ Monster.addInfDefault(builder, this.infDefault);
+ Monster.addPositiveInfDefault(builder, this.positiveInfDefault);
+ Monster.addInfinityDefault(builder, this.infinityDefault);
+ Monster.addPositiveInfinityDefault(builder, this.positiveInfinityDefault);
+ Monster.addNegativeInfDefault(builder, this.negativeInfDefault);
+ Monster.addNegativeInfinityDefault(builder, this.negativeInfinityDefault);
return Monster.endMonster(builder);
}
}
diff --git a/tests/ts/my-game/example/monster.ts b/tests/ts/my-game/example/monster.ts
index 63e5768..7e205ee 100644
--- a/tests/ts/my-game/example/monster.ts
+++ b/tests/ts/my-game/example/monster.ts
@@ -20,7 +20,7 @@
/**
* an example documentation comment: "monster object"
*/
-export class Monster {
+export class Monster implements flatbuffers.IUnpackableObject<MonsterT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Monster {
@@ -683,12 +683,140 @@
return true;
}
+nanDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 112);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : NaN;
+}
+
+mutate_nan_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 112);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+infDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 114);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+mutate_inf_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 114);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+positiveInfDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 116);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+mutate_positive_inf_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 116);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+infinityDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 118);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+mutate_infinity_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 118);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+positiveInfinityDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 120);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+mutate_positive_infinity_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 120);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+negativeInfDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 122);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity;
+}
+
+mutate_negative_inf_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 122);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+negativeInfinityDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 124);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity;
+}
+
+mutate_negative_infinity_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 124);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat32(this.bb_pos + offset, value);
+ return true;
+}
+
+doubleInfDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 126);
+ return offset ? this.bb!.readFloat64(this.bb_pos + offset) : Infinity;
+}
+
+mutate_double_inf_default(value:number):boolean {
+ const offset = this.bb!.__offset(this.bb_pos, 126);
+
+ if (offset === 0) {
+ return false;
+ }
+
+ this.bb!.writeFloat64(this.bb_pos + offset, value);
+ return true;
+}
+
static getFullyQualifiedName():string {
return 'MyGame_Example_Monster';
}
static startMonster(builder:flatbuffers.Builder) {
- builder.startObject(54);
+ builder.startObject(62);
}
static addPos(builder:flatbuffers.Builder, posOffset:flatbuffers.Offset) {
@@ -1124,6 +1252,38 @@
builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2'));
}
+static addNanDefault(builder:flatbuffers.Builder, nanDefault:number) {
+ builder.addFieldFloat32(54, nanDefault, NaN);
+}
+
+static addInfDefault(builder:flatbuffers.Builder, infDefault:number) {
+ builder.addFieldFloat32(55, infDefault, Infinity);
+}
+
+static addPositiveInfDefault(builder:flatbuffers.Builder, positiveInfDefault:number) {
+ builder.addFieldFloat32(56, positiveInfDefault, Infinity);
+}
+
+static addInfinityDefault(builder:flatbuffers.Builder, infinityDefault:number) {
+ builder.addFieldFloat32(57, infinityDefault, Infinity);
+}
+
+static addPositiveInfinityDefault(builder:flatbuffers.Builder, positiveInfinityDefault:number) {
+ builder.addFieldFloat32(58, positiveInfinityDefault, Infinity);
+}
+
+static addNegativeInfDefault(builder:flatbuffers.Builder, negativeInfDefault:number) {
+ builder.addFieldFloat32(59, negativeInfDefault, -Infinity);
+}
+
+static addNegativeInfinityDefault(builder:flatbuffers.Builder, negativeInfinityDefault:number) {
+ builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity);
+}
+
+static addDoubleInfDefault(builder:flatbuffers.Builder, doubleInfDefault:number) {
+ builder.addFieldFloat64(61, doubleInfDefault, Infinity);
+}
+
static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset {
const offset = builder.endObject();
builder.requiredField(offset, 10) // name
@@ -1153,19 +1313,19 @@
this.mana(),
this.hp(),
this.name(),
- this.bb!.createScalarList(this.inventory.bind(this), this.inventoryLength()),
+ this.bb!.createScalarList<number>(this.inventory.bind(this), this.inventoryLength()),
this.color(),
this.testType(),
(() => {
- let temp = unionToAny(this.testType(), this.test.bind(this));
+ const temp = unionToAny(this.testType(), this.test.bind(this));
if(temp === null) { return null; }
return temp.unpack()
})(),
- this.bb!.createObjList(this.test4.bind(this), this.test4Length()),
- this.bb!.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()),
- this.bb!.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()),
+ this.bb!.createObjList<Test, TestT>(this.test4.bind(this), this.test4Length()),
+ this.bb!.createScalarList<string>(this.testarrayofstring.bind(this), this.testarrayofstringLength()),
+ this.bb!.createObjList<Monster, MonsterT>(this.testarrayoftables.bind(this), this.testarrayoftablesLength()),
(this.enemy() !== null ? this.enemy()!.unpack() : null),
- this.bb!.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()),
+ this.bb!.createScalarList<number>(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()),
(this.testempty() !== null ? this.testempty()!.unpack() : null),
this.testbool(),
this.testhashs32Fnv1(),
@@ -1176,44 +1336,52 @@
this.testhashu32Fnv1a(),
this.testhashs64Fnv1a(),
this.testhashu64Fnv1a(),
- this.bb!.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()),
+ this.bb!.createScalarList<boolean>(this.testarrayofbools.bind(this), this.testarrayofboolsLength()),
this.testf(),
this.testf2(),
this.testf3(),
- this.bb!.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()),
- this.bb!.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()),
- this.bb!.createScalarList(this.flex.bind(this), this.flexLength()),
- this.bb!.createObjList(this.test5.bind(this), this.test5Length()),
- this.bb!.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()),
- this.bb!.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()),
+ this.bb!.createScalarList<string>(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()),
+ this.bb!.createObjList<Ability, AbilityT>(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()),
+ this.bb!.createScalarList<number>(this.flex.bind(this), this.flexLength()),
+ this.bb!.createObjList<Test, TestT>(this.test5.bind(this), this.test5Length()),
+ this.bb!.createScalarList<bigint>(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()),
+ this.bb!.createScalarList<number>(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()),
(this.parentNamespaceTest() !== null ? this.parentNamespaceTest()!.unpack() : null),
- this.bb!.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()),
+ this.bb!.createObjList<Referrable, ReferrableT>(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()),
this.singleWeakReference(),
- this.bb!.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()),
- this.bb!.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()),
+ this.bb!.createScalarList<bigint>(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()),
+ this.bb!.createObjList<Referrable, ReferrableT>(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()),
this.coOwningReference(),
- this.bb!.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()),
+ this.bb!.createScalarList<bigint>(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()),
this.nonOwningReference(),
- this.bb!.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()),
+ this.bb!.createScalarList<bigint>(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()),
this.anyUniqueType(),
(() => {
- let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
+ const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
if(temp === null) { return null; }
return temp.unpack()
})(),
this.anyAmbiguousType(),
(() => {
- let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
+ const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
if(temp === null) { return null; }
return temp.unpack()
})(),
- this.bb!.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()),
+ this.bb!.createScalarList<Color>(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()),
this.signedEnum(),
- this.bb!.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()),
- this.bb!.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()),
+ this.bb!.createScalarList<number>(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()),
+ this.bb!.createObjList<Stat, StatT>(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()),
(this.nativeInline() !== null ? this.nativeInline()!.unpack() : null),
this.longEnumNonEnumDefault(),
- this.longEnumNormalDefault()
+ this.longEnumNormalDefault(),
+ this.nanDefault(),
+ this.infDefault(),
+ this.positiveInfDefault(),
+ this.infinityDefault(),
+ this.positiveInfinityDefault(),
+ this.negativeInfDefault(),
+ this.negativeInfinityDefault(),
+ this.doubleInfDefault()
);
}
@@ -1223,19 +1391,19 @@
_o.mana = this.mana();
_o.hp = this.hp();
_o.name = this.name();
- _o.inventory = this.bb!.createScalarList(this.inventory.bind(this), this.inventoryLength());
+ _o.inventory = this.bb!.createScalarList<number>(this.inventory.bind(this), this.inventoryLength());
_o.color = this.color();
_o.testType = this.testType();
_o.test = (() => {
- let temp = unionToAny(this.testType(), this.test.bind(this));
+ const temp = unionToAny(this.testType(), this.test.bind(this));
if(temp === null) { return null; }
return temp.unpack()
})();
- _o.test4 = this.bb!.createObjList(this.test4.bind(this), this.test4Length());
- _o.testarrayofstring = this.bb!.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength());
- _o.testarrayoftables = this.bb!.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength());
+ _o.test4 = this.bb!.createObjList<Test, TestT>(this.test4.bind(this), this.test4Length());
+ _o.testarrayofstring = this.bb!.createScalarList<string>(this.testarrayofstring.bind(this), this.testarrayofstringLength());
+ _o.testarrayoftables = this.bb!.createObjList<Monster, MonsterT>(this.testarrayoftables.bind(this), this.testarrayoftablesLength());
_o.enemy = (this.enemy() !== null ? this.enemy()!.unpack() : null);
- _o.testnestedflatbuffer = this.bb!.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength());
+ _o.testnestedflatbuffer = this.bb!.createScalarList<number>(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength());
_o.testempty = (this.testempty() !== null ? this.testempty()!.unpack() : null);
_o.testbool = this.testbool();
_o.testhashs32Fnv1 = this.testhashs32Fnv1();
@@ -1246,48 +1414,56 @@
_o.testhashu32Fnv1a = this.testhashu32Fnv1a();
_o.testhashs64Fnv1a = this.testhashs64Fnv1a();
_o.testhashu64Fnv1a = this.testhashu64Fnv1a();
- _o.testarrayofbools = this.bb!.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength());
+ _o.testarrayofbools = this.bb!.createScalarList<boolean>(this.testarrayofbools.bind(this), this.testarrayofboolsLength());
_o.testf = this.testf();
_o.testf2 = this.testf2();
_o.testf3 = this.testf3();
- _o.testarrayofstring2 = this.bb!.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length());
- _o.testarrayofsortedstruct = this.bb!.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength());
- _o.flex = this.bb!.createScalarList(this.flex.bind(this), this.flexLength());
- _o.test5 = this.bb!.createObjList(this.test5.bind(this), this.test5Length());
- _o.vectorOfLongs = this.bb!.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength());
- _o.vectorOfDoubles = this.bb!.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength());
+ _o.testarrayofstring2 = this.bb!.createScalarList<string>(this.testarrayofstring2.bind(this), this.testarrayofstring2Length());
+ _o.testarrayofsortedstruct = this.bb!.createObjList<Ability, AbilityT>(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength());
+ _o.flex = this.bb!.createScalarList<number>(this.flex.bind(this), this.flexLength());
+ _o.test5 = this.bb!.createObjList<Test, TestT>(this.test5.bind(this), this.test5Length());
+ _o.vectorOfLongs = this.bb!.createScalarList<bigint>(this.vectorOfLongs.bind(this), this.vectorOfLongsLength());
+ _o.vectorOfDoubles = this.bb!.createScalarList<number>(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength());
_o.parentNamespaceTest = (this.parentNamespaceTest() !== null ? this.parentNamespaceTest()!.unpack() : null);
- _o.vectorOfReferrables = this.bb!.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength());
+ _o.vectorOfReferrables = this.bb!.createObjList<Referrable, ReferrableT>(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength());
_o.singleWeakReference = this.singleWeakReference();
- _o.vectorOfWeakReferences = this.bb!.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength());
- _o.vectorOfStrongReferrables = this.bb!.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength());
+ _o.vectorOfWeakReferences = this.bb!.createScalarList<bigint>(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength());
+ _o.vectorOfStrongReferrables = this.bb!.createObjList<Referrable, ReferrableT>(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength());
_o.coOwningReference = this.coOwningReference();
- _o.vectorOfCoOwningReferences = this.bb!.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength());
+ _o.vectorOfCoOwningReferences = this.bb!.createScalarList<bigint>(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength());
_o.nonOwningReference = this.nonOwningReference();
- _o.vectorOfNonOwningReferences = this.bb!.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength());
+ _o.vectorOfNonOwningReferences = this.bb!.createScalarList<bigint>(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength());
_o.anyUniqueType = this.anyUniqueType();
_o.anyUnique = (() => {
- let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
+ const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
if(temp === null) { return null; }
return temp.unpack()
})();
_o.anyAmbiguousType = this.anyAmbiguousType();
_o.anyAmbiguous = (() => {
- let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
+ const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
if(temp === null) { return null; }
return temp.unpack()
})();
- _o.vectorOfEnums = this.bb!.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength());
+ _o.vectorOfEnums = this.bb!.createScalarList<Color>(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength());
_o.signedEnum = this.signedEnum();
- _o.testrequirednestedflatbuffer = this.bb!.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength());
- _o.scalarKeySortedTables = this.bb!.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength());
+ _o.testrequirednestedflatbuffer = this.bb!.createScalarList<number>(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength());
+ _o.scalarKeySortedTables = this.bb!.createObjList<Stat, StatT>(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength());
_o.nativeInline = (this.nativeInline() !== null ? this.nativeInline()!.unpack() : null);
_o.longEnumNonEnumDefault = this.longEnumNonEnumDefault();
_o.longEnumNormalDefault = this.longEnumNormalDefault();
+ _o.nanDefault = this.nanDefault();
+ _o.infDefault = this.infDefault();
+ _o.positiveInfDefault = this.positiveInfDefault();
+ _o.infinityDefault = this.infinityDefault();
+ _o.positiveInfinityDefault = this.positiveInfinityDefault();
+ _o.negativeInfDefault = this.negativeInfDefault();
+ _o.negativeInfinityDefault = this.negativeInfinityDefault();
+ _o.doubleInfDefault = this.doubleInfDefault();
}
}
-export class MonsterT {
+export class MonsterT implements flatbuffers.IGeneratedObject {
constructor(
public pos: Vec3T|null = null,
public mana: number = 150,
@@ -1341,7 +1517,15 @@
public scalarKeySortedTables: (StatT)[] = [],
public nativeInline: TestT|null = null,
public longEnumNonEnumDefault: bigint = BigInt('0'),
- public longEnumNormalDefault: bigint = BigInt('2')
+ public longEnumNormalDefault: bigint = BigInt('2'),
+ public nanDefault: number = NaN,
+ public infDefault: number = Infinity,
+ public positiveInfDefault: number = Infinity,
+ public infinityDefault: number = Infinity,
+ public positiveInfinityDefault: number = Infinity,
+ public negativeInfDefault: number = -Infinity,
+ public negativeInfinityDefault: number = -Infinity,
+ public doubleInfDefault: number = Infinity
){}
@@ -1428,6 +1612,14 @@
Monster.addNativeInline(builder, (this.nativeInline !== null ? this.nativeInline!.pack(builder) : 0));
Monster.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault);
Monster.addLongEnumNormalDefault(builder, this.longEnumNormalDefault);
+ Monster.addNanDefault(builder, this.nanDefault);
+ Monster.addInfDefault(builder, this.infDefault);
+ Monster.addPositiveInfDefault(builder, this.positiveInfDefault);
+ Monster.addInfinityDefault(builder, this.infinityDefault);
+ Monster.addPositiveInfinityDefault(builder, this.positiveInfinityDefault);
+ Monster.addNegativeInfDefault(builder, this.negativeInfDefault);
+ Monster.addNegativeInfinityDefault(builder, this.negativeInfinityDefault);
+ Monster.addDoubleInfDefault(builder, this.doubleInfDefault);
return Monster.endMonster(builder);
}
diff --git a/tests/ts/my-game/example/referrable.ts b/tests/ts/my-game/example/referrable.ts
index ec02980..5260362 100644
--- a/tests/ts/my-game/example/referrable.ts
+++ b/tests/ts/my-game/example/referrable.ts
@@ -4,7 +4,7 @@
-export class Referrable {
+export class Referrable implements flatbuffers.IUnpackableObject<ReferrableT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Referrable {
@@ -81,7 +81,7 @@
}
}
-export class ReferrableT {
+export class ReferrableT implements flatbuffers.IGeneratedObject {
constructor(
public id: bigint = BigInt('0')
){}
diff --git a/tests/ts/my-game/example/stat.ts b/tests/ts/my-game/example/stat.ts
index e452599..c1597b2 100644
--- a/tests/ts/my-game/example/stat.ts
+++ b/tests/ts/my-game/example/stat.ts
@@ -4,7 +4,7 @@
-export class Stat {
+export class Stat implements flatbuffers.IUnpackableObject<StatT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Stat {
@@ -118,7 +118,7 @@
}
}
-export class StatT {
+export class StatT implements flatbuffers.IGeneratedObject {
constructor(
public id: string|Uint8Array|null = null,
public val: bigint = BigInt('0'),
diff --git a/tests/ts/my-game/example/struct-of-structs-of-structs.ts b/tests/ts/my-game/example/struct-of-structs-of-structs.ts
index 52efc12..fa17939 100644
--- a/tests/ts/my-game/example/struct-of-structs-of-structs.ts
+++ b/tests/ts/my-game/example/struct-of-structs-of-structs.ts
@@ -5,7 +5,7 @@
import { StructOfStructs, StructOfStructsT } from '../../my-game/example/struct-of-structs.js';
-export class StructOfStructsOfStructs {
+export class StructOfStructsOfStructs implements flatbuffers.IUnpackableObject<StructOfStructsOfStructsT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):StructOfStructsOfStructs {
@@ -55,7 +55,7 @@
}
}
-export class StructOfStructsOfStructsT {
+export class StructOfStructsOfStructsT implements flatbuffers.IGeneratedObject {
constructor(
public a: StructOfStructsT|null = null
){}
diff --git a/tests/ts/my-game/example/struct-of-structs.ts b/tests/ts/my-game/example/struct-of-structs.ts
index 749a73c..10d3607 100644
--- a/tests/ts/my-game/example/struct-of-structs.ts
+++ b/tests/ts/my-game/example/struct-of-structs.ts
@@ -6,7 +6,7 @@
import { Test, TestT } from '../../my-game/example/test.js';
-export class StructOfStructs {
+export class StructOfStructs implements flatbuffers.IUnpackableObject<StructOfStructsT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):StructOfStructs {
@@ -67,7 +67,7 @@
}
}
-export class StructOfStructsT {
+export class StructOfStructsT implements flatbuffers.IGeneratedObject {
constructor(
public a: AbilityT|null = null,
public b: TestT|null = null,
diff --git a/tests/ts/my-game/example/test-simple-table-with-enum.ts b/tests/ts/my-game/example/test-simple-table-with-enum.ts
index cfca00b..903ab99 100644
--- a/tests/ts/my-game/example/test-simple-table-with-enum.ts
+++ b/tests/ts/my-game/example/test-simple-table-with-enum.ts
@@ -5,7 +5,7 @@
import { Color } from '../../my-game/example/color.js';
-export class TestSimpleTableWithEnum {
+export class TestSimpleTableWithEnum implements flatbuffers.IUnpackableObject<TestSimpleTableWithEnumT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):TestSimpleTableWithEnum {
@@ -82,7 +82,7 @@
}
}
-export class TestSimpleTableWithEnumT {
+export class TestSimpleTableWithEnumT implements flatbuffers.IGeneratedObject {
constructor(
public color: Color = Color.Green
){}
diff --git a/tests/ts/my-game/example/test.ts b/tests/ts/my-game/example/test.ts
index b3d84ee..7484f2c 100644
--- a/tests/ts/my-game/example/test.ts
+++ b/tests/ts/my-game/example/test.ts
@@ -4,7 +4,7 @@
-export class Test {
+export class Test implements flatbuffers.IUnpackableObject<TestT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Test {
@@ -62,7 +62,7 @@
}
}
-export class TestT {
+export class TestT implements flatbuffers.IGeneratedObject {
constructor(
public a: number = 0,
public b: number = 0
diff --git a/tests/ts/my-game/example/type-aliases.ts b/tests/ts/my-game/example/type-aliases.ts
index 805c8cf..93262d7 100644
--- a/tests/ts/my-game/example/type-aliases.ts
+++ b/tests/ts/my-game/example/type-aliases.ts
@@ -4,7 +4,7 @@
-export class TypeAliases {
+export class TypeAliases implements flatbuffers.IUnpackableObject<TypeAliasesT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):TypeAliases {
@@ -344,8 +344,8 @@
this.u64(),
this.f32(),
this.f64(),
- this.bb!.createScalarList(this.v8.bind(this), this.v8Length()),
- this.bb!.createScalarList(this.vf64.bind(this), this.vf64Length())
+ this.bb!.createScalarList<number>(this.v8.bind(this), this.v8Length()),
+ this.bb!.createScalarList<number>(this.vf64.bind(this), this.vf64Length())
);
}
@@ -361,12 +361,12 @@
_o.u64 = this.u64();
_o.f32 = this.f32();
_o.f64 = this.f64();
- _o.v8 = this.bb!.createScalarList(this.v8.bind(this), this.v8Length());
- _o.vf64 = this.bb!.createScalarList(this.vf64.bind(this), this.vf64Length());
+ _o.v8 = this.bb!.createScalarList<number>(this.v8.bind(this), this.v8Length());
+ _o.vf64 = this.bb!.createScalarList<number>(this.vf64.bind(this), this.vf64Length());
}
}
-export class TypeAliasesT {
+export class TypeAliasesT implements flatbuffers.IGeneratedObject {
constructor(
public i8: number = 0,
public u8: number = 0,
diff --git a/tests/ts/my-game/example/vec3.ts b/tests/ts/my-game/example/vec3.ts
index bc4c473..84516e0 100644
--- a/tests/ts/my-game/example/vec3.ts
+++ b/tests/ts/my-game/example/vec3.ts
@@ -6,7 +6,7 @@
import { Test, TestT } from '../../my-game/example/test.js';
-export class Vec3 {
+export class Vec3 implements flatbuffers.IUnpackableObject<Vec3T> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Vec3 {
@@ -112,7 +112,7 @@
}
}
-export class Vec3T {
+export class Vec3T implements flatbuffers.IGeneratedObject {
constructor(
public x: number = 0.0,
public y: number = 0.0,
diff --git a/tests/ts/my-game/example2/monster.ts b/tests/ts/my-game/example2/monster.ts
index 7240476..0714486 100644
--- a/tests/ts/my-game/example2/monster.ts
+++ b/tests/ts/my-game/example2/monster.ts
@@ -4,7 +4,7 @@
-export class Monster {
+export class Monster implements flatbuffers.IUnpackableObject<MonsterT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Monster {
@@ -56,7 +56,7 @@
unpackTo(_o: MonsterT): void {}
}
-export class MonsterT {
+export class MonsterT implements flatbuffers.IGeneratedObject {
constructor(){}
diff --git a/tests/ts/my-game/in-parent-namespace.ts b/tests/ts/my-game/in-parent-namespace.ts
index 0de94df..0e2f412 100644
--- a/tests/ts/my-game/in-parent-namespace.ts
+++ b/tests/ts/my-game/in-parent-namespace.ts
@@ -4,7 +4,7 @@
-export class InParentNamespace {
+export class InParentNamespace implements flatbuffers.IUnpackableObject<InParentNamespaceT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):InParentNamespace {
@@ -56,7 +56,7 @@
unpackTo(_o: InParentNamespaceT): void {}
}
-export class InParentNamespaceT {
+export class InParentNamespaceT implements flatbuffers.IGeneratedObject {
constructor(){}
diff --git a/tests/ts/reflection/enum-val.js b/tests/ts/reflection/enum-val.js
index f2ce03d..93926a6 100644
--- a/tests/ts/reflection/enum-val.js
+++ b/tests/ts/reflection/enum-val.js
@@ -1,5 +1,6 @@
// automatically generated by the FlatBuffers compiler, do not modify
import * as flatbuffers from 'flatbuffers';
+import { KeyValue } from '../reflection/key-value.js';
import { Type } from '../reflection/type.js';
export class EnumVal {
constructor() {
@@ -46,11 +47,19 @@
const offset = this.bb.__offset(this.bb_pos, 12);
return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
}
+ attributes(index, obj) {
+ const offset = this.bb.__offset(this.bb_pos, 14);
+ return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
+ }
+ attributesLength() {
+ const offset = this.bb.__offset(this.bb_pos, 14);
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+ }
static getFullyQualifiedName() {
return 'reflection_EnumVal';
}
static startEnumVal(builder) {
- builder.startObject(5);
+ builder.startObject(6);
}
static addName(builder, nameOffset) {
builder.addFieldOffset(0, nameOffset, 0);
@@ -74,37 +83,54 @@
static startDocumentationVector(builder, numElems) {
builder.startVector(4, numElems, 4);
}
+ static addAttributes(builder, attributesOffset) {
+ builder.addFieldOffset(5, attributesOffset, 0);
+ }
+ static createAttributesVector(builder, data) {
+ builder.startVector(4, data.length, 4);
+ for (let i = data.length - 1; i >= 0; i--) {
+ builder.addOffset(data[i]);
+ }
+ return builder.endVector();
+ }
+ static startAttributesVector(builder, numElems) {
+ builder.startVector(4, numElems, 4);
+ }
static endEnumVal(builder) {
const offset = builder.endObject();
builder.requiredField(offset, 4); // name
return offset;
}
unpack() {
- return new EnumValT(this.name(), this.value(), (this.unionType() !== null ? this.unionType().unpack() : null), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()));
+ return new EnumValT(this.name(), this.value(), (this.unionType() !== null ? this.unionType().unpack() : null), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()));
}
unpackTo(_o) {
_o.name = this.name();
_o.value = this.value();
_o.unionType = (this.unionType() !== null ? this.unionType().unpack() : null);
_o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength());
}
}
export class EnumValT {
- constructor(name = null, value = BigInt('0'), unionType = null, documentation = []) {
+ constructor(name = null, value = BigInt('0'), unionType = null, documentation = [], attributes = []) {
this.name = name;
this.value = value;
this.unionType = unionType;
this.documentation = documentation;
+ this.attributes = attributes;
}
pack(builder) {
const name = (this.name !== null ? builder.createString(this.name) : 0);
const unionType = (this.unionType !== null ? this.unionType.pack(builder) : 0);
const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation));
+ const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes));
EnumVal.startEnumVal(builder);
EnumVal.addName(builder, name);
EnumVal.addValue(builder, this.value);
EnumVal.addUnionType(builder, unionType);
EnumVal.addDocumentation(builder, documentation);
+ EnumVal.addAttributes(builder, attributes);
return EnumVal.endEnumVal(builder);
}
}
diff --git a/tests/ts/reflection/enum-val.ts b/tests/ts/reflection/enum-val.ts
index 8527832..3119a20 100644
--- a/tests/ts/reflection/enum-val.ts
+++ b/tests/ts/reflection/enum-val.ts
@@ -2,10 +2,11 @@
import * as flatbuffers from 'flatbuffers';
+import { KeyValue, KeyValueT } from '../reflection/key-value.js';
import { Type, TypeT } from '../reflection/type.js';
-export class EnumVal {
+export class EnumVal implements flatbuffers.IUnpackableObject<EnumValT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):EnumVal {
@@ -63,12 +64,22 @@
return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
}
+attributes(index: number, obj?:KeyValue):KeyValue|null {
+ const offset = this.bb!.__offset(this.bb_pos, 14);
+ return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;
+}
+
+attributesLength():number {
+ const offset = this.bb!.__offset(this.bb_pos, 14);
+ return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
+}
+
static getFullyQualifiedName():string {
return 'reflection_EnumVal';
}
static startEnumVal(builder:flatbuffers.Builder) {
- builder.startObject(5);
+ builder.startObject(6);
}
static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) {
@@ -99,6 +110,22 @@
builder.startVector(4, numElems, 4);
}
+static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) {
+ builder.addFieldOffset(5, attributesOffset, 0);
+}
+
+static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {
+ builder.startVector(4, data.length, 4);
+ for (let i = data.length - 1; i >= 0; i--) {
+ builder.addOffset(data[i]!);
+ }
+ return builder.endVector();
+}
+
+static startAttributesVector(builder:flatbuffers.Builder, numElems:number) {
+ builder.startVector(4, numElems, 4);
+}
+
static endEnumVal(builder:flatbuffers.Builder):flatbuffers.Offset {
const offset = builder.endObject();
builder.requiredField(offset, 4) // name
@@ -111,7 +138,8 @@
this.name(),
this.value(),
(this.unionType() !== null ? this.unionType()!.unpack() : null),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength())
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength())
);
}
@@ -120,16 +148,18 @@
_o.name = this.name();
_o.value = this.value();
_o.unionType = (this.unionType() !== null ? this.unionType()!.unpack() : null);
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
}
}
-export class EnumValT {
+export class EnumValT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public value: bigint = BigInt('0'),
public unionType: TypeT|null = null,
- public documentation: (string)[] = []
+ public documentation: (string)[] = [],
+ public attributes: (KeyValueT)[] = []
){}
@@ -137,12 +167,14 @@
const name = (this.name !== null ? builder.createString(this.name!) : 0);
const unionType = (this.unionType !== null ? this.unionType!.pack(builder) : 0);
const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation));
+ const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes));
EnumVal.startEnumVal(builder);
EnumVal.addName(builder, name);
EnumVal.addValue(builder, this.value);
EnumVal.addUnionType(builder, unionType);
EnumVal.addDocumentation(builder, documentation);
+ EnumVal.addAttributes(builder, attributes);
return EnumVal.endEnumVal(builder);
}
diff --git a/tests/ts/reflection/enum.ts b/tests/ts/reflection/enum.ts
index 7bba354..34d1377 100644
--- a/tests/ts/reflection/enum.ts
+++ b/tests/ts/reflection/enum.ts
@@ -7,7 +7,7 @@
import { Type, TypeT } from '../reflection/type.js';
-export class Enum {
+export class Enum implements flatbuffers.IUnpackableObject<EnumT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Enum {
@@ -179,11 +179,11 @@
unpack(): EnumT {
return new EnumT(
this.name(),
- this.bb!.createObjList(this.values.bind(this), this.valuesLength()),
+ this.bb!.createObjList<EnumVal, EnumValT>(this.values.bind(this), this.valuesLength()),
this.isUnion(),
(this.underlyingType() !== null ? this.underlyingType()!.unpack() : null),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.declarationFile()
);
}
@@ -191,16 +191,16 @@
unpackTo(_o: EnumT): void {
_o.name = this.name();
- _o.values = this.bb!.createObjList(this.values.bind(this), this.valuesLength());
+ _o.values = this.bb!.createObjList<EnumVal, EnumValT>(this.values.bind(this), this.valuesLength());
_o.isUnion = this.isUnion();
_o.underlyingType = (this.underlyingType() !== null ? this.underlyingType()!.unpack() : null);
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.declarationFile = this.declarationFile();
}
}
-export class EnumT {
+export class EnumT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public values: (EnumValT)[] = [],
diff --git a/tests/ts/reflection/field.ts b/tests/ts/reflection/field.ts
index 48c1bed..9734fba 100644
--- a/tests/ts/reflection/field.ts
+++ b/tests/ts/reflection/field.ts
@@ -6,7 +6,7 @@
import { Type, TypeT } from '../reflection/type.js';
-export class Field {
+export class Field implements flatbuffers.IUnpackableObject<FieldT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Field {
@@ -308,8 +308,8 @@
this.deprecated(),
this.required(),
this.key(),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.optional(),
this.padding()
);
@@ -326,14 +326,14 @@
_o.deprecated = this.deprecated();
_o.required = this.required();
_o.key = this.key();
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.optional = this.optional();
_o.padding = this.padding();
}
}
-export class FieldT {
+export class FieldT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public type: TypeT|null = null,
diff --git a/tests/ts/reflection/key-value.ts b/tests/ts/reflection/key-value.ts
index 736766b..93262f4 100644
--- a/tests/ts/reflection/key-value.ts
+++ b/tests/ts/reflection/key-value.ts
@@ -4,7 +4,7 @@
-export class KeyValue {
+export class KeyValue implements flatbuffers.IUnpackableObject<KeyValueT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):KeyValue {
@@ -79,7 +79,7 @@
}
}
-export class KeyValueT {
+export class KeyValueT implements flatbuffers.IGeneratedObject {
constructor(
public key: string|Uint8Array|null = null,
public value: string|Uint8Array|null = null
diff --git a/tests/ts/reflection/object.ts b/tests/ts/reflection/object.ts
index 1e14f03..fbe7006 100644
--- a/tests/ts/reflection/object.ts
+++ b/tests/ts/reflection/object.ts
@@ -6,7 +6,7 @@
import { KeyValue, KeyValueT } from '../reflection/key-value.js';
-export class Object_ {
+export class Object_ implements flatbuffers.IUnpackableObject<Object_T> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Object_ {
@@ -220,12 +220,12 @@
unpack(): Object_T {
return new Object_T(
this.name(),
- this.bb!.createObjList(this.fields.bind(this), this.fieldsLength()),
+ this.bb!.createObjList<Field, FieldT>(this.fields.bind(this), this.fieldsLength()),
this.isStruct(),
this.minalign(),
this.bytesize(),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.declarationFile()
);
}
@@ -233,17 +233,17 @@
unpackTo(_o: Object_T): void {
_o.name = this.name();
- _o.fields = this.bb!.createObjList(this.fields.bind(this), this.fieldsLength());
+ _o.fields = this.bb!.createObjList<Field, FieldT>(this.fields.bind(this), this.fieldsLength());
_o.isStruct = this.isStruct();
_o.minalign = this.minalign();
_o.bytesize = this.bytesize();
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.declarationFile = this.declarationFile();
}
}
-export class Object_T {
+export class Object_T implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public fields: (FieldT)[] = [],
diff --git a/tests/ts/reflection/rpccall.ts b/tests/ts/reflection/rpccall.ts
index 151d7b1..320de51 100644
--- a/tests/ts/reflection/rpccall.ts
+++ b/tests/ts/reflection/rpccall.ts
@@ -6,7 +6,7 @@
import { Object_, Object_T } from '../reflection/object.js';
-export class RPCCall {
+export class RPCCall implements flatbuffers.IUnpackableObject<RPCCallT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):RPCCall {
@@ -129,8 +129,8 @@
this.name(),
(this.request() !== null ? this.request()!.unpack() : null),
(this.response() !== null ? this.response()!.unpack() : null),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength())
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength())
);
}
@@ -139,12 +139,12 @@
_o.name = this.name();
_o.request = (this.request() !== null ? this.request()!.unpack() : null);
_o.response = (this.response() !== null ? this.response()!.unpack() : null);
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
}
}
-export class RPCCallT {
+export class RPCCallT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public request: Object_T|null = null,
diff --git a/tests/ts/reflection/schema-file.ts b/tests/ts/reflection/schema-file.ts
index e1f5035..eda23de 100644
--- a/tests/ts/reflection/schema-file.ts
+++ b/tests/ts/reflection/schema-file.ts
@@ -9,7 +9,7 @@
* Symbols declared within a file may be recovered by iterating over all
* symbols and examining the `declaration_file` field.
*/
-export class SchemaFile {
+export class SchemaFile implements flatbuffers.IUnpackableObject<SchemaFileT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):SchemaFile {
@@ -96,18 +96,18 @@
unpack(): SchemaFileT {
return new SchemaFileT(
this.filename(),
- this.bb!.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength())
+ this.bb!.createScalarList<string>(this.includedFilenames.bind(this), this.includedFilenamesLength())
);
}
unpackTo(_o: SchemaFileT): void {
_o.filename = this.filename();
- _o.includedFilenames = this.bb!.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength());
+ _o.includedFilenames = this.bb!.createScalarList<string>(this.includedFilenames.bind(this), this.includedFilenamesLength());
}
}
-export class SchemaFileT {
+export class SchemaFileT implements flatbuffers.IGeneratedObject {
constructor(
public filename: string|Uint8Array|null = null,
public includedFilenames: (string)[] = []
diff --git a/tests/ts/reflection/schema.ts b/tests/ts/reflection/schema.ts
index d1839c7..c996522 100644
--- a/tests/ts/reflection/schema.ts
+++ b/tests/ts/reflection/schema.ts
@@ -8,7 +8,7 @@
import { Service, ServiceT } from '../reflection/service.js';
-export class Schema {
+export class Schema implements flatbuffers.IUnpackableObject<SchemaT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Schema {
@@ -215,31 +215,31 @@
unpack(): SchemaT {
return new SchemaT(
- this.bb!.createObjList(this.objects.bind(this), this.objectsLength()),
- this.bb!.createObjList(this.enums.bind(this), this.enumsLength()),
+ this.bb!.createObjList<Object_, Object_T>(this.objects.bind(this), this.objectsLength()),
+ this.bb!.createObjList<Enum, EnumT>(this.enums.bind(this), this.enumsLength()),
this.fileIdent(),
this.fileExt(),
(this.rootTable() !== null ? this.rootTable()!.unpack() : null),
- this.bb!.createObjList(this.services.bind(this), this.servicesLength()),
+ this.bb!.createObjList<Service, ServiceT>(this.services.bind(this), this.servicesLength()),
this.advancedFeatures(),
- this.bb!.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength())
+ this.bb!.createObjList<SchemaFile, SchemaFileT>(this.fbsFiles.bind(this), this.fbsFilesLength())
);
}
unpackTo(_o: SchemaT): void {
- _o.objects = this.bb!.createObjList(this.objects.bind(this), this.objectsLength());
- _o.enums = this.bb!.createObjList(this.enums.bind(this), this.enumsLength());
+ _o.objects = this.bb!.createObjList<Object_, Object_T>(this.objects.bind(this), this.objectsLength());
+ _o.enums = this.bb!.createObjList<Enum, EnumT>(this.enums.bind(this), this.enumsLength());
_o.fileIdent = this.fileIdent();
_o.fileExt = this.fileExt();
_o.rootTable = (this.rootTable() !== null ? this.rootTable()!.unpack() : null);
- _o.services = this.bb!.createObjList(this.services.bind(this), this.servicesLength());
+ _o.services = this.bb!.createObjList<Service, ServiceT>(this.services.bind(this), this.servicesLength());
_o.advancedFeatures = this.advancedFeatures();
- _o.fbsFiles = this.bb!.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength());
+ _o.fbsFiles = this.bb!.createObjList<SchemaFile, SchemaFileT>(this.fbsFiles.bind(this), this.fbsFilesLength());
}
}
-export class SchemaT {
+export class SchemaT implements flatbuffers.IGeneratedObject {
constructor(
public objects: (Object_T)[] = [],
public enums: (EnumT)[] = [],
diff --git a/tests/ts/reflection/service.ts b/tests/ts/reflection/service.ts
index c083cae..c0ad8ad 100644
--- a/tests/ts/reflection/service.ts
+++ b/tests/ts/reflection/service.ts
@@ -6,7 +6,7 @@
import { RPCCall, RPCCallT } from '../reflection/rpccall.js';
-export class Service {
+export class Service implements flatbuffers.IUnpackableObject<ServiceT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Service {
@@ -156,9 +156,9 @@
unpack(): ServiceT {
return new ServiceT(
this.name(),
- this.bb!.createObjList(this.calls.bind(this), this.callsLength()),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<RPCCall, RPCCallT>(this.calls.bind(this), this.callsLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.declarationFile()
);
}
@@ -166,14 +166,14 @@
unpackTo(_o: ServiceT): void {
_o.name = this.name();
- _o.calls = this.bb!.createObjList(this.calls.bind(this), this.callsLength());
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.calls = this.bb!.createObjList<RPCCall, RPCCallT>(this.calls.bind(this), this.callsLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.declarationFile = this.declarationFile();
}
}
-export class ServiceT {
+export class ServiceT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public calls: (RPCCallT)[] = [],
diff --git a/tests/ts/reflection/type.ts b/tests/ts/reflection/type.ts
index e831e21..3731695 100644
--- a/tests/ts/reflection/type.ts
+++ b/tests/ts/reflection/type.ts
@@ -5,7 +5,7 @@
import { BaseType } from '../reflection/base-type.js';
-export class Type {
+export class Type implements flatbuffers.IUnpackableObject<TypeT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Type {
@@ -195,7 +195,7 @@
}
}
-export class TypeT {
+export class TypeT implements flatbuffers.IGeneratedObject {
constructor(
public baseType: BaseType = BaseType.None,
public element: BaseType = BaseType.None,
diff --git a/tests/ts/reflection_generated.js b/tests/ts/reflection_generated.js
index dd686cc..e0ed007 100644
--- a/tests/ts/reflection_generated.js
+++ b/tests/ts/reflection_generated.js
@@ -302,11 +302,19 @@
const offset = this.bb.__offset(this.bb_pos, 12);
return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
}
+ attributes(index, obj) {
+ const offset = this.bb.__offset(this.bb_pos, 14);
+ return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
+ }
+ attributesLength() {
+ const offset = this.bb.__offset(this.bb_pos, 14);
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+ }
static getFullyQualifiedName() {
return 'reflection_EnumVal';
}
static startEnumVal(builder) {
- builder.startObject(5);
+ builder.startObject(6);
}
static addName(builder, nameOffset) {
builder.addFieldOffset(0, nameOffset, 0);
@@ -330,37 +338,54 @@
static startDocumentationVector(builder, numElems) {
builder.startVector(4, numElems, 4);
}
+ static addAttributes(builder, attributesOffset) {
+ builder.addFieldOffset(5, attributesOffset, 0);
+ }
+ static createAttributesVector(builder, data) {
+ builder.startVector(4, data.length, 4);
+ for (let i = data.length - 1; i >= 0; i--) {
+ builder.addOffset(data[i]);
+ }
+ return builder.endVector();
+ }
+ static startAttributesVector(builder, numElems) {
+ builder.startVector(4, numElems, 4);
+ }
static endEnumVal(builder) {
const offset = builder.endObject();
builder.requiredField(offset, 4); // name
return offset;
}
unpack() {
- return new EnumValT(this.name(), this.value(), (this.unionType() !== null ? this.unionType().unpack() : null), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()));
+ return new EnumValT(this.name(), this.value(), (this.unionType() !== null ? this.unionType().unpack() : null), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()));
}
unpackTo(_o) {
_o.name = this.name();
_o.value = this.value();
_o.unionType = (this.unionType() !== null ? this.unionType().unpack() : null);
_o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength());
}
}
export class EnumValT {
- constructor(name = null, value = BigInt('0'), unionType = null, documentation = []) {
+ constructor(name = null, value = BigInt('0'), unionType = null, documentation = [], attributes = []) {
this.name = name;
this.value = value;
this.unionType = unionType;
this.documentation = documentation;
+ this.attributes = attributes;
}
pack(builder) {
const name = (this.name !== null ? builder.createString(this.name) : 0);
const unionType = (this.unionType !== null ? this.unionType.pack(builder) : 0);
const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation));
+ const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes));
EnumVal.startEnumVal(builder);
EnumVal.addName(builder, name);
EnumVal.addValue(builder, this.value);
EnumVal.addUnionType(builder, unionType);
EnumVal.addDocumentation(builder, documentation);
+ EnumVal.addAttributes(builder, attributes);
return EnumVal.endEnumVal(builder);
}
}
diff --git a/tests/ts/reflection_generated.ts b/tests/ts/reflection_generated.ts
index 4bb1222..6b553b1 100644
--- a/tests/ts/reflection_generated.ts
+++ b/tests/ts/reflection_generated.ts
@@ -35,7 +35,7 @@
DefaultVectorsAndStrings = '8'
}
-export class Type {
+export class Type implements flatbuffers.IUnpackableObject<TypeT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Type {
@@ -225,7 +225,7 @@
}
}
-export class TypeT {
+export class TypeT implements flatbuffers.IGeneratedObject {
constructor(
public baseType: BaseType = BaseType.None,
public element: BaseType = BaseType.None,
@@ -248,7 +248,7 @@
}
}
-export class KeyValue {
+export class KeyValue implements flatbuffers.IUnpackableObject<KeyValueT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):KeyValue {
@@ -323,7 +323,7 @@
}
}
-export class KeyValueT {
+export class KeyValueT implements flatbuffers.IGeneratedObject {
constructor(
public key: string|Uint8Array|null = null,
public value: string|Uint8Array|null = null
@@ -341,7 +341,7 @@
}
}
-export class EnumVal {
+export class EnumVal implements flatbuffers.IUnpackableObject<EnumValT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):EnumVal {
@@ -399,12 +399,22 @@
return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
}
+attributes(index: number, obj?:KeyValue):KeyValue|null {
+ const offset = this.bb!.__offset(this.bb_pos, 14);
+ return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;
+}
+
+attributesLength():number {
+ const offset = this.bb!.__offset(this.bb_pos, 14);
+ return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
+}
+
static getFullyQualifiedName():string {
return 'reflection_EnumVal';
}
static startEnumVal(builder:flatbuffers.Builder) {
- builder.startObject(5);
+ builder.startObject(6);
}
static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) {
@@ -435,6 +445,22 @@
builder.startVector(4, numElems, 4);
}
+static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) {
+ builder.addFieldOffset(5, attributesOffset, 0);
+}
+
+static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {
+ builder.startVector(4, data.length, 4);
+ for (let i = data.length - 1; i >= 0; i--) {
+ builder.addOffset(data[i]!);
+ }
+ return builder.endVector();
+}
+
+static startAttributesVector(builder:flatbuffers.Builder, numElems:number) {
+ builder.startVector(4, numElems, 4);
+}
+
static endEnumVal(builder:flatbuffers.Builder):flatbuffers.Offset {
const offset = builder.endObject();
builder.requiredField(offset, 4) // name
@@ -447,7 +473,8 @@
this.name(),
this.value(),
(this.unionType() !== null ? this.unionType()!.unpack() : null),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength())
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength())
);
}
@@ -456,16 +483,18 @@
_o.name = this.name();
_o.value = this.value();
_o.unionType = (this.unionType() !== null ? this.unionType()!.unpack() : null);
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
}
}
-export class EnumValT {
+export class EnumValT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public value: bigint = BigInt('0'),
public unionType: TypeT|null = null,
- public documentation: (string)[] = []
+ public documentation: (string)[] = [],
+ public attributes: (KeyValueT)[] = []
){}
@@ -473,18 +502,20 @@
const name = (this.name !== null ? builder.createString(this.name!) : 0);
const unionType = (this.unionType !== null ? this.unionType!.pack(builder) : 0);
const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation));
+ const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes));
EnumVal.startEnumVal(builder);
EnumVal.addName(builder, name);
EnumVal.addValue(builder, this.value);
EnumVal.addUnionType(builder, unionType);
EnumVal.addDocumentation(builder, documentation);
+ EnumVal.addAttributes(builder, attributes);
return EnumVal.endEnumVal(builder);
}
}
-export class Enum {
+export class Enum implements flatbuffers.IUnpackableObject<EnumT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Enum {
@@ -656,11 +687,11 @@
unpack(): EnumT {
return new EnumT(
this.name(),
- this.bb!.createObjList(this.values.bind(this), this.valuesLength()),
+ this.bb!.createObjList<EnumVal, EnumValT>(this.values.bind(this), this.valuesLength()),
this.isUnion(),
(this.underlyingType() !== null ? this.underlyingType()!.unpack() : null),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.declarationFile()
);
}
@@ -668,16 +699,16 @@
unpackTo(_o: EnumT): void {
_o.name = this.name();
- _o.values = this.bb!.createObjList(this.values.bind(this), this.valuesLength());
+ _o.values = this.bb!.createObjList<EnumVal, EnumValT>(this.values.bind(this), this.valuesLength());
_o.isUnion = this.isUnion();
_o.underlyingType = (this.underlyingType() !== null ? this.underlyingType()!.unpack() : null);
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.declarationFile = this.declarationFile();
}
}
-export class EnumT {
+export class EnumT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public values: (EnumValT)[] = [],
@@ -710,7 +741,7 @@
}
}
-export class Field {
+export class Field implements flatbuffers.IUnpackableObject<FieldT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Field {
@@ -1012,8 +1043,8 @@
this.deprecated(),
this.required(),
this.key(),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.optional(),
this.padding()
);
@@ -1030,14 +1061,14 @@
_o.deprecated = this.deprecated();
_o.required = this.required();
_o.key = this.key();
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.optional = this.optional();
_o.padding = this.padding();
}
}
-export class FieldT {
+export class FieldT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public type: TypeT|null = null,
@@ -1080,7 +1111,7 @@
}
}
-export class Object_ {
+export class Object_ implements flatbuffers.IUnpackableObject<Object_T> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Object_ {
@@ -1294,12 +1325,12 @@
unpack(): Object_T {
return new Object_T(
this.name(),
- this.bb!.createObjList(this.fields.bind(this), this.fieldsLength()),
+ this.bb!.createObjList<Field, FieldT>(this.fields.bind(this), this.fieldsLength()),
this.isStruct(),
this.minalign(),
this.bytesize(),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.declarationFile()
);
}
@@ -1307,17 +1338,17 @@
unpackTo(_o: Object_T): void {
_o.name = this.name();
- _o.fields = this.bb!.createObjList(this.fields.bind(this), this.fieldsLength());
+ _o.fields = this.bb!.createObjList<Field, FieldT>(this.fields.bind(this), this.fieldsLength());
_o.isStruct = this.isStruct();
_o.minalign = this.minalign();
_o.bytesize = this.bytesize();
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.declarationFile = this.declarationFile();
}
}
-export class Object_T {
+export class Object_T implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public fields: (FieldT)[] = [],
@@ -1350,7 +1381,7 @@
}
}
-export class RPCCall {
+export class RPCCall implements flatbuffers.IUnpackableObject<RPCCallT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):RPCCall {
@@ -1473,8 +1504,8 @@
this.name(),
(this.request() !== null ? this.request()!.unpack() : null),
(this.response() !== null ? this.response()!.unpack() : null),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength())
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength())
);
}
@@ -1483,12 +1514,12 @@
_o.name = this.name();
_o.request = (this.request() !== null ? this.request()!.unpack() : null);
_o.response = (this.response() !== null ? this.response()!.unpack() : null);
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
}
}
-export class RPCCallT {
+export class RPCCallT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public request: Object_T|null = null,
@@ -1516,7 +1547,7 @@
}
}
-export class Service {
+export class Service implements flatbuffers.IUnpackableObject<ServiceT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Service {
@@ -1666,9 +1697,9 @@
unpack(): ServiceT {
return new ServiceT(
this.name(),
- this.bb!.createObjList(this.calls.bind(this), this.callsLength()),
- this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()),
- this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()),
+ this.bb!.createObjList<RPCCall, RPCCallT>(this.calls.bind(this), this.callsLength()),
+ this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength()),
+ this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength()),
this.declarationFile()
);
}
@@ -1676,14 +1707,14 @@
unpackTo(_o: ServiceT): void {
_o.name = this.name();
- _o.calls = this.bb!.createObjList(this.calls.bind(this), this.callsLength());
- _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength());
- _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength());
+ _o.calls = this.bb!.createObjList<RPCCall, RPCCallT>(this.calls.bind(this), this.callsLength());
+ _o.attributes = this.bb!.createObjList<KeyValue, KeyValueT>(this.attributes.bind(this), this.attributesLength());
+ _o.documentation = this.bb!.createScalarList<string>(this.documentation.bind(this), this.documentationLength());
_o.declarationFile = this.declarationFile();
}
}
-export class ServiceT {
+export class ServiceT implements flatbuffers.IGeneratedObject {
constructor(
public name: string|Uint8Array|null = null,
public calls: (RPCCallT)[] = [],
@@ -1715,7 +1746,7 @@
* Symbols declared within a file may be recovered by iterating over all
* symbols and examining the `declaration_file` field.
*/
-export class SchemaFile {
+export class SchemaFile implements flatbuffers.IUnpackableObject<SchemaFileT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):SchemaFile {
@@ -1802,18 +1833,18 @@
unpack(): SchemaFileT {
return new SchemaFileT(
this.filename(),
- this.bb!.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength())
+ this.bb!.createScalarList<string>(this.includedFilenames.bind(this), this.includedFilenamesLength())
);
}
unpackTo(_o: SchemaFileT): void {
_o.filename = this.filename();
- _o.includedFilenames = this.bb!.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength());
+ _o.includedFilenames = this.bb!.createScalarList<string>(this.includedFilenames.bind(this), this.includedFilenamesLength());
}
}
-export class SchemaFileT {
+export class SchemaFileT implements flatbuffers.IGeneratedObject {
constructor(
public filename: string|Uint8Array|null = null,
public includedFilenames: (string)[] = []
@@ -1831,7 +1862,7 @@
}
}
-export class Schema {
+export class Schema implements flatbuffers.IUnpackableObject<SchemaT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Schema {
@@ -2038,31 +2069,31 @@
unpack(): SchemaT {
return new SchemaT(
- this.bb!.createObjList(this.objects.bind(this), this.objectsLength()),
- this.bb!.createObjList(this.enums.bind(this), this.enumsLength()),
+ this.bb!.createObjList<Object_, Object_T>(this.objects.bind(this), this.objectsLength()),
+ this.bb!.createObjList<Enum, EnumT>(this.enums.bind(this), this.enumsLength()),
this.fileIdent(),
this.fileExt(),
(this.rootTable() !== null ? this.rootTable()!.unpack() : null),
- this.bb!.createObjList(this.services.bind(this), this.servicesLength()),
+ this.bb!.createObjList<Service, ServiceT>(this.services.bind(this), this.servicesLength()),
this.advancedFeatures(),
- this.bb!.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength())
+ this.bb!.createObjList<SchemaFile, SchemaFileT>(this.fbsFiles.bind(this), this.fbsFilesLength())
);
}
unpackTo(_o: SchemaT): void {
- _o.objects = this.bb!.createObjList(this.objects.bind(this), this.objectsLength());
- _o.enums = this.bb!.createObjList(this.enums.bind(this), this.enumsLength());
+ _o.objects = this.bb!.createObjList<Object_, Object_T>(this.objects.bind(this), this.objectsLength());
+ _o.enums = this.bb!.createObjList<Enum, EnumT>(this.enums.bind(this), this.enumsLength());
_o.fileIdent = this.fileIdent();
_o.fileExt = this.fileExt();
_o.rootTable = (this.rootTable() !== null ? this.rootTable()!.unpack() : null);
- _o.services = this.bb!.createObjList(this.services.bind(this), this.servicesLength());
+ _o.services = this.bb!.createObjList<Service, ServiceT>(this.services.bind(this), this.servicesLength());
_o.advancedFeatures = this.advancedFeatures();
- _o.fbsFiles = this.bb!.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength());
+ _o.fbsFiles = this.bb!.createObjList<SchemaFile, SchemaFileT>(this.fbsFiles.bind(this), this.fbsFilesLength());
}
}
-export class SchemaT {
+export class SchemaT implements flatbuffers.IGeneratedObject {
constructor(
public objects: (Object_T)[] = [],
public enums: (EnumT)[] = [],
diff --git a/tests/ts/ts-flat-files/monster_test_generated.ts b/tests/ts/ts-flat-files/monster_test_generated.ts
index 8a768f2..f1566c6 100644
--- a/tests/ts/ts-flat-files/monster_test_generated.ts
+++ b/tests/ts/ts-flat-files/monster_test_generated.ts
@@ -1152,8 +1152,48 @@
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('2');
}
+nanDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 112);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : NaN;
+}
+
+infDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 114);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+positiveInfDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 116);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+infinityDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 118);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+positiveInfinityDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 120);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
+}
+
+negativeInfDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 122);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity;
+}
+
+negativeInfinityDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 124);
+ return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity;
+}
+
+doubleInfDefault():number {
+ const offset = this.bb!.__offset(this.bb_pos, 126);
+ return offset ? this.bb!.readFloat64(this.bb_pos + offset) : Infinity;
+}
+
static startMonster(builder:flatbuffers.Builder) {
- builder.startObject(54);
+ builder.startObject(62);
}
static addPos(builder:flatbuffers.Builder, posOffset:flatbuffers.Offset) {
@@ -1589,6 +1629,38 @@
builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2'));
}
+static addNanDefault(builder:flatbuffers.Builder, nanDefault:number) {
+ builder.addFieldFloat32(54, nanDefault, NaN);
+}
+
+static addInfDefault(builder:flatbuffers.Builder, infDefault:number) {
+ builder.addFieldFloat32(55, infDefault, Infinity);
+}
+
+static addPositiveInfDefault(builder:flatbuffers.Builder, positiveInfDefault:number) {
+ builder.addFieldFloat32(56, positiveInfDefault, Infinity);
+}
+
+static addInfinityDefault(builder:flatbuffers.Builder, infinityDefault:number) {
+ builder.addFieldFloat32(57, infinityDefault, Infinity);
+}
+
+static addPositiveInfinityDefault(builder:flatbuffers.Builder, positiveInfinityDefault:number) {
+ builder.addFieldFloat32(58, positiveInfinityDefault, Infinity);
+}
+
+static addNegativeInfDefault(builder:flatbuffers.Builder, negativeInfDefault:number) {
+ builder.addFieldFloat32(59, negativeInfDefault, -Infinity);
+}
+
+static addNegativeInfinityDefault(builder:flatbuffers.Builder, negativeInfinityDefault:number) {
+ builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity);
+}
+
+static addDoubleInfDefault(builder:flatbuffers.Builder, doubleInfDefault:number) {
+ builder.addFieldFloat64(61, doubleInfDefault, Infinity);
+}
+
static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset {
const offset = builder.endObject();
builder.requiredField(offset, 10) // name
diff --git a/tests/ts/tsconfig.json b/tests/ts/tsconfig.json
index 27196b3..4678c63 100644
--- a/tests/ts/tsconfig.json
+++ b/tests/ts/tsconfig.json
@@ -20,6 +20,7 @@
"typescript/**/*.ts",
"optional_scalars/**/*.ts",
"namespace_test/**/*.ts",
- "union_vector/**/*.ts"
+ "union_vector/**/*.ts",
+ "arrays_test_complex/**/*.ts"
]
}
diff --git a/tests/ts/typescript/object.ts b/tests/ts/typescript/object.ts
index 041b660..5baf6ed 100644
--- a/tests/ts/typescript/object.ts
+++ b/tests/ts/typescript/object.ts
@@ -8,7 +8,7 @@
import { class_ } from '../typescript/class.js';
-export class Object_ {
+export class Object_ implements flatbuffers.IUnpackableObject<Object_T> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Object_ {
@@ -193,7 +193,7 @@
}
}
-export class Object_T {
+export class Object_T implements flatbuffers.IGeneratedObject {
constructor(
public return_: number = 0,
public if_: number = 0,
diff --git a/tests/ts/typescript_keywords_generated.ts b/tests/ts/typescript_keywords_generated.ts
index 4272425..bcc6110 100644
--- a/tests/ts/typescript_keywords_generated.ts
+++ b/tests/ts/typescript_keywords_generated.ts
@@ -11,7 +11,7 @@
instanceof_ = 1
}
-export class Object_ {
+export class Object_ implements flatbuffers.IUnpackableObject<Object_T> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Object_ {
@@ -196,7 +196,7 @@
}
}
-export class Object_T {
+export class Object_T implements flatbuffers.IGeneratedObject {
constructor(
public return_: number = 0,
public if_: number = 0,
diff --git a/tests/ts/union_vector/attacker.ts b/tests/ts/union_vector/attacker.ts
index 6b3fc0f..0d3ca4b 100644
--- a/tests/ts/union_vector/attacker.ts
+++ b/tests/ts/union_vector/attacker.ts
@@ -4,7 +4,7 @@
-export class Attacker {
+export class Attacker implements flatbuffers.IUnpackableObject<AttackerT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Attacker {
@@ -73,7 +73,7 @@
}
}
-export class AttackerT {
+export class AttackerT implements flatbuffers.IGeneratedObject {
constructor(
public swordAttackDamage: number = 0
){}
diff --git a/tests/ts/union_vector/book-reader.ts b/tests/ts/union_vector/book-reader.ts
index 7a31278..29a9b50 100644
--- a/tests/ts/union_vector/book-reader.ts
+++ b/tests/ts/union_vector/book-reader.ts
@@ -4,7 +4,7 @@
-export class BookReader {
+export class BookReader implements flatbuffers.IUnpackableObject<BookReaderT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):BookReader {
@@ -49,7 +49,7 @@
}
}
-export class BookReaderT {
+export class BookReaderT implements flatbuffers.IGeneratedObject {
constructor(
public booksRead: number = 0
){}
diff --git a/tests/ts/union_vector/falling-tub.ts b/tests/ts/union_vector/falling-tub.ts
index b32f99d..eeb9f72 100644
--- a/tests/ts/union_vector/falling-tub.ts
+++ b/tests/ts/union_vector/falling-tub.ts
@@ -4,7 +4,7 @@
-export class FallingTub {
+export class FallingTub implements flatbuffers.IUnpackableObject<FallingTubT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):FallingTub {
@@ -49,7 +49,7 @@
}
}
-export class FallingTubT {
+export class FallingTubT implements flatbuffers.IGeneratedObject {
constructor(
public weight: number = 0
){}
diff --git a/tests/ts/union_vector/hand-fan.ts b/tests/ts/union_vector/hand-fan.ts
index f90b4dd..dd687ba 100644
--- a/tests/ts/union_vector/hand-fan.ts
+++ b/tests/ts/union_vector/hand-fan.ts
@@ -4,7 +4,7 @@
-export class HandFan {
+export class HandFan implements flatbuffers.IUnpackableObject<HandFanT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):HandFan {
@@ -73,7 +73,7 @@
}
}
-export class HandFanT {
+export class HandFanT implements flatbuffers.IGeneratedObject {
constructor(
public length: number = 0
){}
diff --git a/tests/ts/union_vector/movie.js b/tests/ts/union_vector/movie.js
index 0245a43..53374eb 100644
--- a/tests/ts/union_vector/movie.js
+++ b/tests/ts/union_vector/movie.js
@@ -107,7 +107,7 @@
}
unpack() {
return new MovieT(this.mainCharacterType(), (() => {
- let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
+ const temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
if (temp === null) {
return null;
}
@@ -116,13 +116,13 @@
}
return temp.unpack();
})(), this.bb.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()), (() => {
- let ret = [];
+ const ret = [];
for (let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) {
- let targetEnum = this.charactersType(targetEnumIndex);
+ const targetEnum = this.charactersType(targetEnumIndex);
if (targetEnum === null || Character[targetEnum] === 'NONE') {
continue;
}
- let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
+ const temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
if (temp === null) {
continue;
}
@@ -138,7 +138,7 @@
unpackTo(_o) {
_o.mainCharacterType = this.mainCharacterType();
_o.mainCharacter = (() => {
- let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
+ const temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
if (temp === null) {
return null;
}
@@ -149,13 +149,13 @@
})();
_o.charactersType = this.bb.createScalarList(this.charactersType.bind(this), this.charactersTypeLength());
_o.characters = (() => {
- let ret = [];
+ const ret = [];
for (let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) {
- let targetEnum = this.charactersType(targetEnumIndex);
+ const targetEnum = this.charactersType(targetEnumIndex);
if (targetEnum === null || Character[targetEnum] === 'NONE') {
continue;
}
- let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
+ const temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
if (temp === null) {
continue;
}
diff --git a/tests/ts/union_vector/movie.ts b/tests/ts/union_vector/movie.ts
index 6edeb53..a9f7553 100644
--- a/tests/ts/union_vector/movie.ts
+++ b/tests/ts/union_vector/movie.ts
@@ -8,7 +8,7 @@
import { Rapunzel, RapunzelT } from './rapunzel.js';
-export class Movie {
+export class Movie implements flatbuffers.IUnpackableObject<MovieT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Movie {
@@ -139,19 +139,19 @@
return new MovieT(
this.mainCharacterType(),
(() => {
- let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
+ const temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
if(temp === null) { return null; }
if(typeof temp === 'string') { return temp; }
return temp.unpack()
})(),
- this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()),
+ this.bb!.createScalarList<Character>(this.charactersType.bind(this), this.charactersTypeLength()),
(() => {
- let ret = [];
+ const ret: (AttackerT|BookReaderT|RapunzelT|string)[] = [];
for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) {
- let targetEnum = this.charactersType(targetEnumIndex);
+ const targetEnum = this.charactersType(targetEnumIndex);
if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; }
- let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
+ const temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
if(temp === null) { continue; }
if(typeof temp === 'string') { ret.push(temp); continue; }
ret.push(temp.unpack());
@@ -165,19 +165,19 @@
unpackTo(_o: MovieT): void {
_o.mainCharacterType = this.mainCharacterType();
_o.mainCharacter = (() => {
- let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
+ const temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
if(temp === null) { return null; }
if(typeof temp === 'string') { return temp; }
return temp.unpack()
})();
- _o.charactersType = this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength());
+ _o.charactersType = this.bb!.createScalarList<Character>(this.charactersType.bind(this), this.charactersTypeLength());
_o.characters = (() => {
- let ret = [];
+ const ret: (AttackerT|BookReaderT|RapunzelT|string)[] = [];
for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) {
- let targetEnum = this.charactersType(targetEnumIndex);
+ const targetEnum = this.charactersType(targetEnumIndex);
if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; }
- let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
+ const temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
if(temp === null) { continue; }
if(typeof temp === 'string') { ret.push(temp); continue; }
ret.push(temp.unpack());
@@ -187,7 +187,7 @@
}
}
-export class MovieT {
+export class MovieT implements flatbuffers.IGeneratedObject {
constructor(
public mainCharacterType: Character = Character.NONE,
public mainCharacter: AttackerT|BookReaderT|RapunzelT|string|null = null,
diff --git a/tests/ts/union_vector/rapunzel.ts b/tests/ts/union_vector/rapunzel.ts
index e1dc63d..20ca497 100644
--- a/tests/ts/union_vector/rapunzel.ts
+++ b/tests/ts/union_vector/rapunzel.ts
@@ -4,7 +4,7 @@
-export class Rapunzel {
+export class Rapunzel implements flatbuffers.IUnpackableObject<RapunzelT> {
bb: flatbuffers.ByteBuffer|null = null;
bb_pos = 0;
__init(i:number, bb:flatbuffers.ByteBuffer):Rapunzel {
@@ -49,7 +49,7 @@
}
}
-export class RapunzelT {
+export class RapunzelT implements flatbuffers.IGeneratedObject {
constructor(
public hairLength: number = 0
){}
diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs
index 2fc24f3..a0a4df7 100644
--- a/tests/type_field_collsion/Collision.cs
+++ b/tests/type_field_collsion/Collision.cs
@@ -13,7 +13,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); }
public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs
index 57c32fa..c733747 100644
--- a/tests/union_vector/Attacker.cs
+++ b/tests/union_vector/Attacker.cs
@@ -10,7 +10,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); }
public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java
index e156444..0f9c28e 100644
--- a/tests/union_vector/Attacker.java
+++ b/tests/union_vector/Attacker.java
@@ -7,7 +7,7 @@
@SuppressWarnings("unused")
public final class Attacker extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); }
public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt
index 6942bad..94042aa 100644
--- a/tests/union_vector/Attacker.kt
+++ b/tests/union_vector/Attacker.kt
@@ -29,7 +29,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker())
fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs
index 52e3e74..b57a204 100644
--- a/tests/union_vector/HandFan.cs
+++ b/tests/union_vector/HandFan.cs
@@ -10,7 +10,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); }
public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java
index 641da84..5184b4c 100644
--- a/tests/union_vector/HandFan.java
+++ b/tests/union_vector/HandFan.java
@@ -7,7 +7,7 @@
@SuppressWarnings("unused")
public final class HandFan extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); }
public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt
index 8304d1f..4c3a448 100644
--- a/tests/union_vector/HandFan.kt
+++ b/tests/union_vector/HandFan.kt
@@ -29,7 +29,7 @@
}
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan())
fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs
index 9bc2d9a..6411645 100644
--- a/tests/union_vector/Movie.cs
+++ b/tests/union_vector/Movie.cs
@@ -10,7 +10,7 @@
{
private Table __p;
public ByteBuffer ByteBuffer { get { return __p.bb; } }
- public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); }
public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); }
public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); }
diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java
index 2cf1622..63797dd 100644
--- a/tests/union_vector/Movie.java
+++ b/tests/union_vector/Movie.java
@@ -7,7 +7,7 @@
@SuppressWarnings("unused")
public final class Movie extends Table {
- public static void ValidateVersion() { Constants.FLATBUFFERS_2_0_8(); }
+ public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); }
public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); }
public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); }
diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt
index ee26a59..faec8e4 100644
--- a/tests/union_vector/Movie.kt
+++ b/tests/union_vector/Movie.kt
@@ -67,7 +67,7 @@
val o = __offset(10); return if (o != 0) __vector_len(o) else 0
}
companion object {
- fun validateVersion() = Constants.FLATBUFFERS_2_0_8()
+ fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie())
fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie {
_bb.order(ByteOrder.LITTLE_ENDIAN)
diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h
index 8f60272..920c13a 100644
--- a/tests/union_vector/union_vector_generated.h
+++ b/tests/union_vector/union_vector_generated.h
@@ -8,9 +8,9 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
- FLATBUFFERS_VERSION_MINOR == 0 &&
- FLATBUFFERS_VERSION_REVISION == 8,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 22 &&
+ FLATBUFFERS_VERSION_MINOR == 10 &&
+ FLATBUFFERS_VERSION_REVISION == 26,
"Non-compatible flatbuffers version included");
struct Attacker;
diff --git a/tests/util_test.cpp b/tests/util_test.cpp
index d6db916..f2821a4 100644
--- a/tests/util_test.cpp
+++ b/tests/util_test.cpp
@@ -149,11 +149,19 @@
cases.push_back({ flatbuffers::Case::kUpperCamel, "tHe_qUiCk_BrOwN_fOx",
flatbuffers::Case::kKeep, "tHe_qUiCk_BrOwN_fOx" });
cases.push_back({ flatbuffers::Case::kLowerCamel, "theQuick12345Fox",
- flatbuffers::Case::kSnake, "the_quick_12345fox" });
+ flatbuffers::Case::kSnake, "the_quick_12345_fox" });
cases.push_back({ flatbuffers::Case::kLowerCamel, "a12b34c45",
flatbuffers::Case::kSnake, "a_12b_34c_45" });
cases.push_back({ flatbuffers::Case::kLowerCamel, "a12b34c45",
flatbuffers::Case::kSnake2, "a12_b34_c45" });
+ cases.push_back({ flatbuffers::Case::kUpperCamel, "Int32Stamped",
+ flatbuffers::Case::kSnake, "int_32_stamped" });
+ cases.push_back({ flatbuffers::Case::kUpperCamel, "101DogsTest",
+ flatbuffers::Case::kSnake, "101_dogs_test" });
+ cases.push_back({ flatbuffers::Case::kUpperCamel, "Int32Stamped",
+ flatbuffers::Case::kScreamingSnake, "INT_32_STAMPED" });
+ cases.push_back({ flatbuffers::Case::kUpperCamel, "101DogsTest",
+ flatbuffers::Case::kScreamingSnake, "101_DOGS_TEST" });
for (auto &test_case : cases) {
TEST_EQ(test_case.expected_output,