Merge commit '0f6aab9da6fe982218a01f4a5b896e65fcced437' as 'third_party/flatbuffers'
This commit is contained in:
+78
@@ -0,0 +1,78 @@
|
||||
load("@aspect_rules_js//js:defs.bzl", "js_test")
|
||||
load("//:typescript.bzl", "flatbuffer_ts_library")
|
||||
|
||||
package(default_visibility = ["//visibility:private"])
|
||||
|
||||
flatbuffer_ts_library(
|
||||
name = "typescript_ts_fbs",
|
||||
srcs = ["typescript_keywords.fbs"],
|
||||
deps = [
|
||||
"//tests/ts/test_dir:include_ts_fbs",
|
||||
"//tests/ts/test_dir:typescript_transitive_ts_fbs",
|
||||
],
|
||||
)
|
||||
|
||||
TEST_DATA = glob([
|
||||
"my-game/*.js",
|
||||
"my-game/example/*.js",
|
||||
"my-game/example2/*.js",
|
||||
])
|
||||
|
||||
TEST_UNION_VECTOR_DATA = glob([
|
||||
"union_vector/*.js",
|
||||
])
|
||||
|
||||
TEST_COMPLEX_ARRAYS_DATA = glob([
|
||||
"arrays_test_complex/**/*.js",
|
||||
])
|
||||
|
||||
# Here we're running the tests against the checked-in generated files. These
|
||||
# are kept up-to-date with a CI-based mechanism. The intent of running these
|
||||
# tests here via bazel is not to validate that they're up-to-date. Instead, we
|
||||
# just want to make it easy to run these tests while making other changes. For
|
||||
# example, this is useful when making changes to the rules_js setup to validate
|
||||
# that the basic infrastructure is still working.
|
||||
[js_test(
|
||||
name = "%s_test" % test,
|
||||
chdir = package_name(),
|
||||
data = data + [
|
||||
"package.json",
|
||||
"//:node_modules/flatbuffers",
|
||||
"//tests:test_data_copied_to_bin",
|
||||
],
|
||||
entry_point = "%s.js" % test,
|
||||
) for test, data in (
|
||||
("JavaScriptTest", TEST_DATA),
|
||||
("JavaScriptUnionVectorTest", TEST_UNION_VECTOR_DATA),
|
||||
# TODO(philsc): Figure out how to run this test with flexbuffers available.
|
||||
# At the moment the flexbuffer library is not exposed as a bazel target.
|
||||
#("JavaScriptFlexBuffersTest", TBD_DATA)
|
||||
("JavaScriptComplexArraysTest", TEST_COMPLEX_ARRAYS_DATA),
|
||||
)]
|
||||
|
||||
sh_test(
|
||||
name = "bazel_repository_test",
|
||||
srcs = ["bazel_repository_test.sh"],
|
||||
data = [
|
||||
"//:distribution",
|
||||
"@bazel_linux_x86_64//file",
|
||||
] + glob(
|
||||
[
|
||||
"bazel_repository_test_dir/**/*",
|
||||
],
|
||||
exclude = [
|
||||
"bazel_repository_test_dir/bazel-*/**",
|
||||
],
|
||||
),
|
||||
tags = [
|
||||
# Since we have bazel downloading external repositories inside this
|
||||
# test, we need to give it access to the internet.
|
||||
"requires-network",
|
||||
],
|
||||
# We only have x86_64 Linux bazel exposed so restrict the test to that.
|
||||
target_compatible_with = [
|
||||
"@platforms//cpu:x86_64",
|
||||
"@platforms//os:linux",
|
||||
],
|
||||
deps = ["@bazel_tools//tools/bash/runfiles"],
|
||||
)
|
||||
@@ -0,0 +1,126 @@
|
||||
/* global BigInt */
|
||||
|
||||
import assert from 'assert';
|
||||
import { readFileSync, writeFileSync } from 'fs';
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { ArrayStructT } from './arrays_test_complex/my-game/example/array-struct.js'
|
||||
import { ArrayTable, ArrayTableT } from './arrays_test_complex/my-game/example/array-table.js'
|
||||
import { InnerStructT } from './arrays_test_complex/my-game/example/inner-struct.js'
|
||||
import { NestedStructT } from './arrays_test_complex/my-game/example/nested-struct.js'
|
||||
import { OuterStructT } from './arrays_test_complex/my-game/example/outer-struct.js'
|
||||
import { TestEnum } from './arrays_test_complex/my-game/example/test-enum.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');
|
||||
}
|
||||
@@ -0,0 +1,390 @@
|
||||
// Run this using JavaScriptTest.sh
|
||||
import assert from 'assert'
|
||||
import fs from 'fs'
|
||||
import * as flexbuffers from 'flatbuffers/js/flexbuffers.js'
|
||||
|
||||
function main() {
|
||||
testSingleValueBuffers();
|
||||
testGoldBuffer();
|
||||
testEncode();
|
||||
testIndirectAdd();
|
||||
testIndirectWithCache();
|
||||
testMapBuilder();
|
||||
testRoundTrip();
|
||||
testRoundTripWithBuilder();
|
||||
testDeduplicationOff();
|
||||
testBugWhereOffestWereStoredAsIntInsteadOfUInt();
|
||||
|
||||
console.log('FlexBuffers test: completed successfully');
|
||||
}
|
||||
|
||||
function testSingleValueBuffers() {
|
||||
{
|
||||
const ref = flexbuffers.toReference(new Uint8Array([0, 0, 1]).buffer);
|
||||
assert.strictEqual(true, ref.isNull());
|
||||
}
|
||||
|
||||
function _assert(object, buffer) {
|
||||
assert.deepStrictEqual(flexbuffers.toObject(new Uint8Array(buffer).buffer), object);
|
||||
}
|
||||
_assert(true, [1, 104, 1]);
|
||||
_assert(false, [0, 104, 1]);
|
||||
_assert(25, [25, 4, 1]);
|
||||
_assert(-25, [231, 4, 1]);
|
||||
_assert(230, [230, 8, 1]);
|
||||
_assert(230, [230, 0, 5, 2]);
|
||||
_assert(-1025, [255, 251, 5, 2]);
|
||||
_assert(1025, [1, 4, 9, 2]);
|
||||
_assert(2147483647, [255, 255, 255, 127, 6, 4]);
|
||||
_assert(-2147483648, [0, 0, 0, 128, 6, 4]);
|
||||
_assert(4294967295n, [255, 255, 255, 255, 0, 0, 0, 0, 7, 8]);
|
||||
_assert(9223372036854775807n, [255, 255, 255, 255, 255, 255, 255, 127, 7, 8]);
|
||||
_assert(-9223372036854775808n, [0, 0, 0, 0, 0, 0, 0, 128, 7, 8]);
|
||||
_assert(18446744073709551615n, [255, 255, 255, 255, 255, 255, 255, 255, 11, 8]);
|
||||
_assert(4.5, [0, 0, 144, 64, 14, 4]);
|
||||
_assert(0.10000000149011612, [205, 204, 204, 61, 14, 4]);
|
||||
_assert(0.1, [154, 153, 153, 153, 153, 153, 185, 63, 15, 8]);
|
||||
_assert(-1025, [255, 251, 5, 2]);
|
||||
_assert("Maxim", [5, 77, 97, 120, 105, 109, 0, 6, 20, 1]);
|
||||
_assert("hello 😱", [10, 104, 101, 108, 108, 111, 32, 240, 159, 152, 177, 0, 11, 20, 1]);
|
||||
_assert({a:12}, [97, 0, 1, 3, 1, 1, 1, 12, 4, 2, 36, 1]);
|
||||
_assert({"":45, "a": 12}, [0, 97, 0, 2, 4, 4, 2, 1, 2, 45, 12, 4, 4, 4, 36, 1]);
|
||||
}
|
||||
|
||||
function testEncode() {
|
||||
function _assert(value, buffer) {
|
||||
assert.deepStrictEqual(flexbuffers.encode(value), new Uint8Array(buffer));
|
||||
}
|
||||
_assert(null, [0, 0, 1]);
|
||||
_assert(true, [1, 104, 1]);
|
||||
_assert(false, [0, 104, 1]);
|
||||
_assert(1, [1, 4, 1]);
|
||||
_assert(230, [230, 0, 5, 2]);
|
||||
_assert(1025, [1, 4, 5, 2]);
|
||||
_assert(-1025, [255, 251, 5, 2]);
|
||||
_assert(0x100000001, [1, 0, 0, 0, 1, 0, 0, 0, 7, 8]);
|
||||
_assert(0.1, [154, 153, 153, 153, 153, 153, 185, 63, 15, 8]);
|
||||
_assert(0.5, [0, 0, 0, 63, 14, 4]);
|
||||
_assert(new Uint8Array([1, 2, 3]), [3, 1, 2, 3, 3, 100, 1]);
|
||||
_assert("Maxim", [5, 77, 97, 120, 105, 109, 0, 6, 20, 1]);
|
||||
_assert("hello 😱", [10, 104, 101, 108, 108, 111, 32, 240, 159, 152, 177, 0, 11, 20, 1]);
|
||||
_assert([1, 2], [1, 2, 2, 64, 1]);
|
||||
_assert([-1, 256], [255, 255, 0, 1, 4, 65, 1]);
|
||||
_assert([-45, 256000], [211, 255, 255, 255, 0, 232, 3, 0, 8, 66, 1]);
|
||||
_assert([1.1, -256.0], [2, 0, 0, 0, 0, 0, 0, 0, 154, 153, 153, 153, 153, 153, 241, 63, 0, 255, 255, 255, 255, 255, 255, 255, 15, 5, 18, 43, 1]);
|
||||
_assert([1, 2, 4], [1, 2, 4, 3, 76, 1]);
|
||||
_assert([-1, 256, 4], [255, 255, 0, 1, 4, 0, 6, 77, 1]);
|
||||
_assert([[61], 64], [1, 61, 2, 2, 64, 44, 4, 4, 40, 1]);
|
||||
_assert(["foo", "bar", "baz"], [3, 102, 111, 111, 0, 3, 98, 97, 114, 0, 3, 98, 97, 122, 0, 3, 15, 11, 7, 3, 60, 1]);
|
||||
_assert(["foo", "bar", "baz", "foo", "bar", "baz"], [3, 102, 111, 111, 0, 3, 98, 97, 114, 0, 3, 98, 97, 122, 0, 6, 15, 11, 7, 18, 14, 10, 6, 60, 1]);
|
||||
_assert([true, false, true], [3, 1, 0, 1, 3, 144, 1]);
|
||||
_assert(['foo', 1, -5, 1.3, true], [
|
||||
3, 102, 111, 111, 0, 0, 0, 0,
|
||||
5, 0, 0, 0, 0, 0, 0, 0,
|
||||
15, 0, 0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0, 0, 0,
|
||||
251, 255, 255, 255, 255, 255, 255, 255,
|
||||
205, 204, 204, 204, 204, 204, 244, 63,
|
||||
1, 0, 0, 0, 0, 0, 0, 0,
|
||||
20, 4, 4, 15, 104, 45, 43, 1
|
||||
]);
|
||||
_assert([1, 3.3, 'max', true, null, false], [
|
||||
3, 109, 97, 120, 0, 0, 0, 0,
|
||||
6, 0, 0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0, 0, 0,
|
||||
102, 102, 102, 102, 102, 102, 10, 64,
|
||||
31, 0, 0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
4, 15, 20, 104, 0, 104, 54, 43, 1
|
||||
]);
|
||||
_assert({"a": 12}, [97, 0, 1, 3, 1, 1, 1, 12, 4, 2, 36, 1]);
|
||||
_assert({"a": 12, "":45}, [0, 97, 0, 2, 4, 4, 2, 1, 2, 45, 12, 4, 4, 4, 36, 1]);
|
||||
// JS currently does not support key vector offset sharing
|
||||
_assert([{'something':12}, {'something': 45}], [
|
||||
115, 111, 109, 101, 116, 104, 105, 110, 103, 0,
|
||||
1, 11, 1, 1, 1, 12, 4, 6, 1, 1, 45, 4, 2, 8, 4, 36, 36, 4, 40, 1
|
||||
]);
|
||||
}
|
||||
|
||||
function testDeduplicationOff() {
|
||||
let buffer = flexbuffers.encode([{'something':12}, {'something': 45}], 1, true, true, false);
|
||||
assert.deepStrictEqual(buffer, new Uint8Array([
|
||||
115, 111, 109, 101, 116, 104, 105, 110, 103,
|
||||
0, 1, 11, 1, 1, 1, 12, 4, 1,
|
||||
18, 1, 1, 1, 45, 4, 2, 10, 4,
|
||||
36, 36, 4, 40, 1
|
||||
]));
|
||||
|
||||
buffer = flexbuffers.encode([{'something':12}, {'something': 45}], 1, true, false, false);
|
||||
assert.deepStrictEqual(buffer, new Uint8Array([
|
||||
115, 111, 109, 101, 116, 104, 105, 110, 103, 0,
|
||||
1, 11, 1, 1, 1, 12, 4, 115, 111, 109,
|
||||
101, 116, 104, 105, 110, 103, 0, 1, 11, 1,
|
||||
1, 1, 45, 4, 2, 20, 4, 36, 36, 4,
|
||||
40, 1
|
||||
]));
|
||||
|
||||
buffer = flexbuffers.encode(['something', 'something', 'dark'], 1, true, false, false);
|
||||
assert.deepStrictEqual(buffer, new Uint8Array([
|
||||
9, 115, 111, 109, 101, 116, 104,
|
||||
105, 110, 103, 0, 4, 100, 97,
|
||||
114, 107, 0, 3, 17, 18, 8,
|
||||
3, 60, 1
|
||||
]));
|
||||
|
||||
buffer = flexbuffers.encode(['something', 'something', 'dark'], 1, false, false, false);
|
||||
assert.deepStrictEqual(buffer, new Uint8Array([
|
||||
9, 115, 111, 109, 101, 116, 104, 105, 110,
|
||||
103, 0, 9, 115, 111, 109, 101, 116, 104,
|
||||
105, 110, 103, 0, 4, 100, 97, 114, 107,
|
||||
0, 3, 28, 18, 8, 3, 60, 1
|
||||
]));
|
||||
}
|
||||
|
||||
function testIndirectAdd() {
|
||||
function _assertInt(buffer, value, indirect = false, cache = false) {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.addInt(value, indirect, cache);
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array(buffer));
|
||||
}
|
||||
function _assertUInt(buffer, value, indirect = false, cache = false) {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.addUInt(value, indirect, cache);
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array(buffer));
|
||||
}
|
||||
function _assertFloat(buffer, value, indirect = false, cache = false) {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.addFloat(value, indirect, cache);
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array(buffer));
|
||||
}
|
||||
_assertInt([0, 4, 1], 0);
|
||||
_assertInt([0, 1, 24, 1], 0, true);
|
||||
_assertInt([255, 0, 5, 2], 255);
|
||||
|
||||
_assertUInt([0, 8, 1], 0);
|
||||
_assertUInt([0, 1, 28, 1], 0, true);
|
||||
_assertUInt([255, 8, 1], 255);
|
||||
|
||||
_assertUInt([185, 115, 175, 118, 250, 84, 8, 0, 11, 8], 2345234523452345);
|
||||
_assertUInt([185, 115, 175, 118, 250, 84, 8, 0, 8, 31, 1], 2345234523452345, true);
|
||||
_assertInt([185, 115, 175, 118, 250, 84, 8, 0, 7, 8], 2345234523452345);
|
||||
_assertInt([185, 115, 175, 118, 250, 84, 8, 0, 8, 27, 1], 2345234523452345, true);
|
||||
|
||||
_assertFloat([154, 153, 153, 153, 153, 153, 185, 63, 15, 8], 0.1);
|
||||
_assertFloat([154, 153, 153, 153, 153, 153, 185, 63, 8, 35, 1], 0.1, true);
|
||||
_assertFloat([0, 0, 0, 0, 14, 4], 0);
|
||||
_assertFloat([0, 0, 0, 0, 4, 34, 1], 0, true);
|
||||
}
|
||||
|
||||
function testIndirectWithCache() {
|
||||
function _assertInt(buffer, values) {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.startVector();
|
||||
values.forEach(v => {
|
||||
builder.addInt(v, true, true)
|
||||
});
|
||||
builder.end();
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array(buffer));
|
||||
}
|
||||
|
||||
function _assertUInt(buffer, values) {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.startVector();
|
||||
values.forEach(v => {
|
||||
builder.addUInt(v, true, true);
|
||||
});
|
||||
builder.end();
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array(buffer));
|
||||
}
|
||||
|
||||
function _assertFloat(buffer, values) {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.startVector();
|
||||
values.forEach(v => {
|
||||
builder.addFloat(v, true, true);
|
||||
});
|
||||
builder.end();
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array(buffer));
|
||||
}
|
||||
|
||||
_assertInt(
|
||||
[185, 115, 175, 118, 250, 84, 8, 0, 4, 9, 10, 11, 12, 27, 27, 27, 27, 8, 40, 1],
|
||||
[2345234523452345, 2345234523452345, 2345234523452345, 2345234523452345]
|
||||
);
|
||||
|
||||
_assertUInt(
|
||||
[185, 115, 175, 118, 250, 84, 8, 0, 4, 9, 10, 11, 12, 31, 31, 31, 31, 8, 40, 1],
|
||||
[2345234523452345, 2345234523452345, 2345234523452345, 2345234523452345]
|
||||
);
|
||||
|
||||
_assertFloat(
|
||||
[154, 153, 153, 153, 153, 153, 185, 63, 4, 9, 10, 11, 12, 35, 35, 35, 35, 8, 40, 1],
|
||||
[0.1, 0.1, 0.1, 0.1]
|
||||
);
|
||||
}
|
||||
|
||||
function testMapBuilder() {
|
||||
const builder = flexbuffers.builder();
|
||||
builder.startMap();
|
||||
builder.addKey('a');
|
||||
builder.add(12);
|
||||
builder.addKey('');
|
||||
builder.add(45);
|
||||
builder.end();
|
||||
const data = builder.finish();
|
||||
assert.deepStrictEqual(data, new Uint8Array([97, 0, 0, 2, 2, 5, 2, 1, 2, 45, 12, 4, 4, 4, 36, 1]));
|
||||
}
|
||||
|
||||
function testRoundTrip() {
|
||||
const example = {
|
||||
"age": 35,
|
||||
"flags": [true, false, true, true],
|
||||
"weight": 72.5,
|
||||
"name": "Maxim",
|
||||
"address": {
|
||||
"city": "Bla",
|
||||
"zip": "12345",
|
||||
"countryCode": "XX",
|
||||
}
|
||||
};
|
||||
|
||||
function _assert(value) {
|
||||
let buffer = flexbuffers.encode(value, 1);
|
||||
let o = flexbuffers.toObject(buffer.buffer);
|
||||
assert.deepStrictEqual(o, value);
|
||||
}
|
||||
|
||||
_assert(example);
|
||||
_assert(0x100000001n);
|
||||
_assert({ test_number: 72.6 })
|
||||
}
|
||||
|
||||
function testRoundTripWithBuilder() {
|
||||
const example = {
|
||||
"age": 35,
|
||||
"flags": [true, false, true, true],
|
||||
"weight": 72.5,
|
||||
"name": "Maxim",
|
||||
"address": {
|
||||
"city": "Bla",
|
||||
"zip": "12345",
|
||||
"countryCode": "XX",
|
||||
}
|
||||
};
|
||||
|
||||
const builder = flexbuffers.builder();
|
||||
builder.startMap();
|
||||
|
||||
builder.addKey('age');
|
||||
builder.add(35);
|
||||
|
||||
builder.addKey('flags');
|
||||
builder.startVector();
|
||||
builder.add(true);
|
||||
builder.add(false);
|
||||
builder.add(true);
|
||||
builder.add(true);
|
||||
builder.end();
|
||||
|
||||
builder.addKey("weight");
|
||||
builder.add(72.5);
|
||||
|
||||
builder.addKey("name");
|
||||
builder.add("Maxim");
|
||||
|
||||
builder.addKey("address");
|
||||
|
||||
builder.startMap();
|
||||
builder.addKey("city");
|
||||
builder.add("Bla");
|
||||
builder.addKey("zip");
|
||||
builder.add("12345");
|
||||
builder.addKey("countryCode");
|
||||
builder.add("XX");
|
||||
builder.end();
|
||||
|
||||
builder.end();
|
||||
|
||||
const data = builder.finish();
|
||||
let o = flexbuffers.toObject(data.buffer);
|
||||
assert.deepStrictEqual(o, example);
|
||||
|
||||
let root = flexbuffers.toReference(data.buffer);
|
||||
assert.strictEqual(root.isMap(), true);
|
||||
assert.strictEqual(root.get("age").numericValue(), 35);
|
||||
assert.strictEqual(root.get("age").intValue(), 35);
|
||||
assert.strictEqual(root.get("name").stringValue(), "Maxim");
|
||||
assert.strictEqual(root.get("weight").floatValue(), 72.5);
|
||||
assert.strictEqual(root.get("weight").numericValue(), 72.5);
|
||||
let flags = root.get("flags");
|
||||
assert.strictEqual(flags.isVector(), true);
|
||||
assert.strictEqual(flags.length(), 4);
|
||||
assert.strictEqual(flags.get(0).boolValue(), true);
|
||||
assert.strictEqual(flags.get(1).boolValue(), false);
|
||||
assert.strictEqual(flags.get(2).boolValue(), true);
|
||||
assert.strictEqual(flags.get(3).boolValue(), true);
|
||||
|
||||
let address = root.get("address");
|
||||
assert.strictEqual(address.isMap(), true);
|
||||
assert.strictEqual(address.length(), 3);
|
||||
assert.strictEqual(address.get("city").stringValue(), "Bla");
|
||||
assert.strictEqual(address.get("zip").stringValue(), "12345");
|
||||
assert.strictEqual(address.get("countryCode").stringValue(), "XX");
|
||||
}
|
||||
|
||||
function testGoldBuffer() {
|
||||
const data = new Uint8Array(fs.readFileSync('../gold_flexbuffer_example.bin')).buffer;
|
||||
const b1 = flexbuffers.toReference(data).get("bools").get(1);
|
||||
assert.strictEqual(b1.isBool(), true);
|
||||
assert.strictEqual(b1.boolValue(), false);
|
||||
|
||||
const blob = flexbuffers.toReference(data).get("vec").get(3);
|
||||
assert.strictEqual(blob.isBlob(), true);
|
||||
assert.deepStrictEqual(blob.blobValue(), new Uint8Array([77]));
|
||||
|
||||
const o = flexbuffers.toObject(data);
|
||||
assert.deepStrictEqual(o, {
|
||||
bool: true,
|
||||
bools: [true, false, true, false],
|
||||
bar: [1, 2, 3],
|
||||
bar3: [1, 2, 3],
|
||||
foo: 100,
|
||||
mymap: {foo:'Fred'},
|
||||
vec: [-100, 'Fred', 4, new Uint8Array([77]), false, 4]
|
||||
});
|
||||
}
|
||||
|
||||
function testBugWhereOffestWereStoredAsIntInsteadOfUInt() {
|
||||
// Reported in https://github.com/google/flatbuffers/issues/5949#issuecomment-688421193
|
||||
const object = {'channels_in': 64, 'dilation_height_factor': 1, 'dilation_width_factor': 1, 'fused_activation_function': 1, 'pad_values': 1, 'padding': 0, 'stride_height': 1, 'stride_width': 1};
|
||||
let data1 = flexbuffers.encode(object);
|
||||
const data = [99, 104, 97, 110, 110, 101, 108, 115, 95, 105, 110, 0,
|
||||
100, 105, 108, 97, 116, 105, 111, 110, 95, 104, 101, 105, 103, 104, 116, 95, 102, 97, 99, 116, 111, 114, 0,
|
||||
100, 105, 108, 97, 116, 105, 111, 110, 95, 119, 105, 100, 116, 104, 95, 102, 97, 99, 116, 111, 114, 0,
|
||||
102, 117, 115, 101, 100, 95, 97, 99, 116, 105, 118, 97, 116, 105, 111, 110, 95, 102, 117, 110, 99, 116, 105, 111, 110, 0,
|
||||
112, 97, 100, 95, 118, 97, 108, 117, 101, 115, 0, 112, 97, 100, 100, 105, 110, 103, 0,
|
||||
115, 116, 114, 105, 100, 101, 95, 104, 101, 105, 103, 104, 116, 0,
|
||||
115, 116, 114, 105, 100, 101, 95, 119, 105, 100, 116, 104, 0,
|
||||
8, 130, 119, 97, 76, 51, 41, 34, 21, 8, 1, 8, 64, 1, 1, 1, 1, 0, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 16, 36, 1];
|
||||
let object2 = flexbuffers.toObject(new Uint8Array(data).buffer);
|
||||
let object1 = flexbuffers.toObject(new Uint8Array(data1).buffer);
|
||||
assert.deepStrictEqual(object, object2);
|
||||
assert.deepStrictEqual(object, object1);
|
||||
assert.strictEqual(data.length, data1.length);
|
||||
let ref = flexbuffers.toReference(new Uint8Array(data).buffer);
|
||||
assert.strictEqual(ref.isMap(), true);
|
||||
assert.strictEqual(ref.length(), 8);
|
||||
assert.strictEqual(ref.get("channels_in").numericValue(), 64);
|
||||
assert.strictEqual(ref.get("padding").isNumber(), true);
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import assert from 'assert'
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { Foo } from './required-strings/foo.js';
|
||||
|
||||
|
||||
var builder = new flatbuffers.Builder();
|
||||
|
||||
function main() {
|
||||
testMissingFirstRequiredString();
|
||||
builder.clear();
|
||||
testMissingSecondRequiredString();
|
||||
}
|
||||
|
||||
function testMissingFirstRequiredString() {
|
||||
const undefined_string = builder.createString(undefined);
|
||||
const defined_string = builder.createString('cat');
|
||||
|
||||
assert.throws(() => Foo.createFoo(
|
||||
builder, undefined_string, defined_string
|
||||
));
|
||||
}
|
||||
|
||||
function testMissingSecondRequiredString() {
|
||||
const defined_string = builder.createString('cat');
|
||||
const undefined_string = builder.createString(undefined);
|
||||
|
||||
assert.throws(() => Foo.createFoo(
|
||||
builder, defined_string, undefined_string
|
||||
));
|
||||
}
|
||||
|
||||
main();
|
||||
+497
@@ -0,0 +1,497 @@
|
||||
// Run this using JavaScriptTest.sh
|
||||
import assert from 'assert'
|
||||
import fs from 'fs'
|
||||
import * as flatbuffers from 'flatbuffers'
|
||||
|
||||
import { Monster, MonsterT } from './my-game/example/monster.js'
|
||||
import { Test, TestT } from './my-game/example/test.js'
|
||||
import { Stat } from './my-game/example/stat.js'
|
||||
import { Vec3 } from './my-game/example/vec3.js'
|
||||
import { Color } from './my-game/example/color.js';
|
||||
import { Any } from './my-game/example/any.js';
|
||||
|
||||
function main() {
|
||||
|
||||
// First, let's test reading a FlatBuffer generated by C++ code:
|
||||
// This file was generated from monsterdata_test.json
|
||||
var data = new Uint8Array(fs.readFileSync('../monsterdata_test.mon'));
|
||||
|
||||
// Now test it:
|
||||
|
||||
var bb = new flatbuffers.ByteBuffer(data);
|
||||
testBuffer(bb);
|
||||
|
||||
// Second, let's create a FlatBuffer from scratch in JavaScript, and test it also.
|
||||
// We use an initial size of 1 to exercise the reallocation algorithm,
|
||||
// normally a size larger than the typical FlatBuffer you generate would be
|
||||
// better for performance.
|
||||
var fbb = new flatbuffers.Builder(1);
|
||||
createMonster(fbb);
|
||||
serializeAndTest(fbb);
|
||||
testObjApiPack(fbb);
|
||||
|
||||
// clear the builder, repeat tests
|
||||
var clearIterations = 100;
|
||||
var startingCapacity = fbb.bb.capacity();
|
||||
for (var i = 0; i < clearIterations; i++) {
|
||||
fbb.clear();
|
||||
createMonster(fbb);
|
||||
serializeAndTest(fbb);
|
||||
testObjApiPack(fbb);
|
||||
}
|
||||
// the capacity of our buffer shouldn't increase with the same size payload
|
||||
assert.strictEqual(fbb.bb.capacity(), startingCapacity);
|
||||
|
||||
test64bit();
|
||||
testUnicode();
|
||||
fuzzTest1();
|
||||
testNullStrings();
|
||||
testSharedStrings();
|
||||
testVectorOfStructs();
|
||||
testCreateByteVector();
|
||||
|
||||
console.log('FlatBuffers test: completed successfully');
|
||||
}
|
||||
|
||||
function createMonster(fbb) {
|
||||
// We set up the same values as monsterdata.json:
|
||||
|
||||
var str = fbb.createString('MyMonster');
|
||||
|
||||
var inv = Monster.createInventoryVector(fbb, [0, 1, 2, 3, 4]);
|
||||
|
||||
var fred = fbb.createString('Fred');
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addName(fbb, fred);
|
||||
var mon2 = Monster.endMonster(fbb);
|
||||
|
||||
Monster.startTest4Vector(fbb, 2);
|
||||
Test.createTest(fbb, 10, 20);
|
||||
Test.createTest(fbb, 30, 40);
|
||||
var test4 = fbb.endVector();
|
||||
|
||||
var testArrayOfString = Monster.createTestarrayofstringVector(fbb, [
|
||||
fbb.createString('test1'),
|
||||
fbb.createString('test2')
|
||||
]);
|
||||
|
||||
var testVectorOfLongs = Monster.createVectorOfLongsVector(fbb, [
|
||||
1n,
|
||||
101010100n
|
||||
]);
|
||||
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addPos(fbb, Vec3.createVec3(fbb, 1, 2, 3, 3, Color.Green, 5, 6));
|
||||
Monster.addHp(fbb, 80);
|
||||
Monster.addName(fbb, str);
|
||||
Monster.addInventory(fbb, inv);
|
||||
Monster.addTestType(fbb, Any.Monster);
|
||||
Monster.addTest(fbb, mon2);
|
||||
Monster.addTest4(fbb, test4);
|
||||
Monster.addTestarrayofstring(fbb, testArrayOfString);
|
||||
Monster.addVectorOfLongs(fbb, testVectorOfLongs);
|
||||
Monster.addTestbool(fbb, true);
|
||||
var mon = Monster.endMonster(fbb);
|
||||
|
||||
Monster.finishMonsterBuffer(fbb, mon);
|
||||
}
|
||||
|
||||
function serializeAndTest(fbb) {
|
||||
// Write the result to a file for debugging purposes:
|
||||
// Note that the binaries are not necessarily identical, since the JSON
|
||||
// parser may serialize in a slightly different order than the above
|
||||
// JavaScript code. They are functionally equivalent though.
|
||||
|
||||
fs.writeFileSync('monsterdata_javascript_wire.mon', Buffer.from(fbb.asUint8Array()));
|
||||
|
||||
// Tests mutation first. This will verify that we did not trample any other
|
||||
// part of the byte buffer.
|
||||
testMutation(fbb.dataBuffer());
|
||||
|
||||
testBuffer(fbb.dataBuffer());
|
||||
}
|
||||
|
||||
function testMutation(bb) {
|
||||
var monster = Monster.getRootAsMonster(bb);
|
||||
|
||||
monster.mutate_hp(120);
|
||||
assert.strictEqual(monster.hp(), 120);
|
||||
|
||||
monster.mutate_hp(80);
|
||||
assert.strictEqual(monster.hp(), 80);
|
||||
|
||||
var manaRes = monster.mutate_mana(10);
|
||||
assert.strictEqual(manaRes, false); // Field was NOT present, because default value.
|
||||
|
||||
// TODO: There is not the availability to mutate structs or vectors.
|
||||
}
|
||||
|
||||
function testObjApiPack(fbb) {
|
||||
fbb.clear();
|
||||
createMonster(fbb);
|
||||
let monster_t = Monster.getRootAsMonster(fbb.dataBuffer()).unpack();
|
||||
fbb.clear();
|
||||
Monster.finishMonsterBuffer(fbb, monster_t.pack(fbb));
|
||||
serializeAndTest(fbb);
|
||||
}
|
||||
|
||||
function testObjApiUnpack(monster) {
|
||||
assert.strictEqual(monster.hp, 80);
|
||||
assert.strictEqual(monster.mana, 150); // default
|
||||
|
||||
assert.strictEqual(monster.name, 'MyMonster');
|
||||
|
||||
let pos = monster.pos;
|
||||
assert.strictEqual(pos.x, 1);
|
||||
assert.strictEqual(pos.y, 2);
|
||||
assert.strictEqual(pos.z, 3);
|
||||
assert.strictEqual(pos.test1, 3);
|
||||
assert.strictEqual(pos.test2, Color.Green);
|
||||
let test3 = pos.test3;
|
||||
assert.strictEqual(test3.a, 5);
|
||||
assert.strictEqual(test3.b, 6);
|
||||
|
||||
assert.strictEqual(monster.testType, Any.Monster);
|
||||
let monster2 = monster.test;
|
||||
assert.strictEqual(monster2 != null, true);
|
||||
assert.strictEqual(monster2 instanceof MonsterT, true);
|
||||
assert.strictEqual(monster2.name, 'Fred');
|
||||
|
||||
assert.strictEqual(monster.inventory.length, 5);
|
||||
let invsum = 0;
|
||||
for (let i = 0; i < monster.inventory.length; i++) {
|
||||
invsum += monster.inventory[i];
|
||||
}
|
||||
assert.strictEqual(invsum, 10);
|
||||
|
||||
let test_0 = monster.test4[0];
|
||||
let test_1 = monster.test4[1];
|
||||
assert.strictEqual(monster.test4.length, 2);
|
||||
assert.strictEqual(test_0.a + test_0.b + test_1.a + test_1.b, 100);
|
||||
|
||||
assert.strictEqual(monster.testarrayofstring.length, 2);
|
||||
assert.strictEqual(monster.testarrayofstring[0], 'test1');
|
||||
assert.strictEqual(monster.testarrayofstring[1], 'test2');
|
||||
|
||||
assert.strictEqual(monster.testbool, true);
|
||||
}
|
||||
|
||||
function testBuffer(bb) {
|
||||
assert.ok(Monster.bufferHasIdentifier(bb));
|
||||
|
||||
var monster = Monster.getRootAsMonster(bb);
|
||||
|
||||
assert.strictEqual(monster.hp(), 80);
|
||||
assert.strictEqual(monster.mana(), 150); // default
|
||||
|
||||
assert.strictEqual(monster.name(), 'MyMonster');
|
||||
|
||||
var pos = monster.pos();
|
||||
assert.strictEqual(pos.x(), 1);
|
||||
assert.strictEqual(pos.y(), 2);
|
||||
assert.strictEqual(pos.z(), 3);
|
||||
assert.strictEqual(pos.test1(), 3);
|
||||
assert.strictEqual(pos.test2(), Color.Green);
|
||||
var t = pos.test3();
|
||||
assert.strictEqual(t.a(), 5);
|
||||
assert.strictEqual(t.b(), 6);
|
||||
|
||||
assert.strictEqual(monster.testType(), Any.Monster);
|
||||
var monster2 = new Monster();
|
||||
assert.strictEqual(monster.test(monster2) != null, true);
|
||||
assert.strictEqual(monster2.name(), 'Fred');
|
||||
|
||||
assert.strictEqual(monster.inventoryLength(), 5);
|
||||
var invsum = 0;
|
||||
for (var i = 0; i < monster.inventoryLength(); i++) {
|
||||
invsum += monster.inventory(i);
|
||||
}
|
||||
assert.strictEqual(invsum, 10);
|
||||
|
||||
var invsum2 = 0;
|
||||
var invArr = monster.inventoryArray();
|
||||
for (var i = 0; i < invArr.length; i++) {
|
||||
invsum2 += invArr[i];
|
||||
}
|
||||
assert.strictEqual(invsum2, 10);
|
||||
|
||||
let longSum = 0n;
|
||||
for (let idx = 0; idx < monster.vectorOfLongsLength(); ++idx) {
|
||||
longSum += monster.vectorOfLongs(idx);
|
||||
}
|
||||
assert.strictEqual(longSum, 101010101n);
|
||||
|
||||
var test_0 = monster.test4(0);
|
||||
var test_1 = monster.test4(1);
|
||||
assert.strictEqual(monster.test4Length(), 2);
|
||||
assert.strictEqual(test_0.a() + test_0.b() + test_1.a() + test_1.b(), 100);
|
||||
|
||||
assert.strictEqual(monster.testarrayofstringLength(), 2);
|
||||
assert.strictEqual(monster.testarrayofstring(0), 'test1');
|
||||
assert.strictEqual(monster.testarrayofstring(1), 'test2');
|
||||
|
||||
assert.strictEqual(monster.testbool(), true);
|
||||
|
||||
let monster_t = monster.unpack();
|
||||
testObjApiUnpack(monster_t);
|
||||
|
||||
let monster2_t = new MonsterT();
|
||||
monster.unpackTo(monster2_t);
|
||||
testObjApiUnpack(monster2_t);
|
||||
}
|
||||
|
||||
function test64bit() {
|
||||
var fbb = new flatbuffers.Builder();
|
||||
var required = fbb.createString('required');
|
||||
|
||||
Stat.startStat(fbb);
|
||||
var stat2 = Stat.endStat(fbb);
|
||||
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addName(fbb, required);
|
||||
Monster.addTestempty(fbb, stat2);
|
||||
var mon2 = Monster.endMonster(fbb);
|
||||
|
||||
Stat.startStat(fbb);
|
||||
// 2541551405100253985 = 0x2345678987654321
|
||||
Stat.addVal(fbb, 0x2345678987654321n);
|
||||
var stat = Stat.endStat(fbb);
|
||||
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addName(fbb, required);
|
||||
Monster.addEnemy(fbb, mon2);
|
||||
Monster.addTestempty(fbb, stat);
|
||||
var mon = Monster.endMonster(fbb);
|
||||
|
||||
Monster.finishMonsterBuffer(fbb, mon);
|
||||
var bytes = fbb.asUint8Array();
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
var bb = new flatbuffers.ByteBuffer(bytes);
|
||||
assert.ok(Monster.bufferHasIdentifier(bb));
|
||||
var mon = Monster.getRootAsMonster(bb);
|
||||
|
||||
var stat = mon.testempty();
|
||||
assert.strictEqual(stat != null, true);
|
||||
assert.strictEqual(stat.val() != null, true);
|
||||
assert.strictEqual(stat.val(), 2541551405100253985n);
|
||||
|
||||
var mon2 = mon.enemy();
|
||||
assert.strictEqual(mon2 != null, true);
|
||||
stat = mon2.testempty();
|
||||
assert.strictEqual(stat != null, true);
|
||||
assert.strictEqual(stat.val() != null, true);
|
||||
assert.strictEqual(stat.val(), 0n); // default value
|
||||
}
|
||||
|
||||
function testUnicode() {
|
||||
var correct = fs.readFileSync('../unicode_test.mon');
|
||||
var json = JSON.parse(fs.readFileSync('../unicode_test.json', 'utf8'));
|
||||
|
||||
// Test reading
|
||||
function testReadingUnicode(bb) {
|
||||
var monster = Monster.getRootAsMonster(bb);
|
||||
assert.strictEqual(monster.name(), json.name);
|
||||
assert.deepEqual(Buffer.from(monster.name(flatbuffers.Encoding.UTF8_BYTES)), Buffer.from(json.name));
|
||||
assert.strictEqual(monster.testarrayoftablesLength(), json.testarrayoftables.length);
|
||||
json.testarrayoftables.forEach(function(table, i) {
|
||||
var value = monster.testarrayoftables(i);
|
||||
assert.strictEqual(value.name(), table.name);
|
||||
assert.deepEqual(Buffer.from(value.name(flatbuffers.Encoding.UTF8_BYTES)), Buffer.from(table.name));
|
||||
});
|
||||
assert.strictEqual(monster.testarrayofstringLength(), json.testarrayofstring.length);
|
||||
json.testarrayofstring.forEach(function(string, i) {
|
||||
assert.strictEqual(monster.testarrayofstring(i), string);
|
||||
assert.deepEqual(Buffer.from(monster.testarrayofstring(i, flatbuffers.Encoding.UTF8_BYTES)), Buffer.from(string));
|
||||
});
|
||||
}
|
||||
testReadingUnicode(new flatbuffers.ByteBuffer(new Uint8Array(correct)));
|
||||
|
||||
// Test writing
|
||||
var fbb = new flatbuffers.Builder();
|
||||
var name = fbb.createString(json.name);
|
||||
var testarrayoftablesOffsets = json.testarrayoftables.map(function(table) {
|
||||
var name = fbb.createString(new Uint8Array(Buffer.from(table.name)));
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addName(fbb, name);
|
||||
return Monster.endMonster(fbb);
|
||||
});
|
||||
var testarrayoftablesOffset = Monster.createTestarrayoftablesVector(fbb,
|
||||
testarrayoftablesOffsets);
|
||||
var testarrayofstringOffset = Monster.createTestarrayofstringVector(fbb,
|
||||
json.testarrayofstring.map(function(string) { return fbb.createString(string); }));
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addTestarrayofstring(fbb, testarrayofstringOffset);
|
||||
Monster.addTestarrayoftables(fbb, testarrayoftablesOffset);
|
||||
Monster.addName(fbb, name);
|
||||
Monster.finishSizePrefixedMonsterBuffer(fbb, Monster.endMonster(fbb));
|
||||
var bb = new flatbuffers.ByteBuffer(fbb.asUint8Array())
|
||||
bb.setPosition(4);
|
||||
testReadingUnicode(bb);
|
||||
}
|
||||
|
||||
var __imul = Math.imul ? Math.imul : function(a, b) {
|
||||
var ah = a >> 16 & 65535;
|
||||
var bh = b >> 16 & 65535;
|
||||
var al = a & 65535;
|
||||
var bl = b & 65535;
|
||||
return al * bl + (ah * bl + al * bh << 16) | 0;
|
||||
};
|
||||
|
||||
// Include simple random number generator to ensure results will be the
|
||||
// same cross platform.
|
||||
// http://en.wikipedia.org/wiki/Park%E2%80%93Miller_random_number_generator
|
||||
var lcg_seed = 48271;
|
||||
|
||||
function lcg_rand() {
|
||||
return lcg_seed = (__imul(lcg_seed, 279470273) >>> 0) % 4294967291;
|
||||
}
|
||||
|
||||
function lcg_reset() {
|
||||
lcg_seed = 48271;
|
||||
}
|
||||
|
||||
// Converts a Field ID to a virtual table offset.
|
||||
function fieldIndexToOffset(field_id) {
|
||||
// Should correspond to what EndTable() below builds up.
|
||||
var fixed_fields = 2; // Vtable size and Object Size.
|
||||
return (field_id + fixed_fields) * 2;
|
||||
}
|
||||
|
||||
// Low level stress/fuzz test: serialize/deserialize a variety of
|
||||
// different kinds of data in different combinations
|
||||
function fuzzTest1() {
|
||||
|
||||
// Values we're testing against: chosen to ensure no bits get chopped
|
||||
// off anywhere, and also be different from eachother.
|
||||
var bool_val = true;
|
||||
var char_val = -127; // 0x81
|
||||
var uchar_val = 0xFF;
|
||||
var short_val = -32222; // 0x8222;
|
||||
var ushort_val = 0xFEEE;
|
||||
var int_val = 0x83333333 | 0;
|
||||
var uint_val = 0xFDDDDDDD;
|
||||
var long_val = BigInt.asIntN(64, 0x8444444444444444n);
|
||||
var ulong_val = BigInt.asUintN(64, 0xFCCCCCCCCCCCCCCCn);
|
||||
var float_val = new Float32Array([3.14159])[0];
|
||||
var double_val = 3.14159265359;
|
||||
|
||||
var test_values_max = 11;
|
||||
var fields_per_object = 4;
|
||||
var num_fuzz_objects = 10000; // The higher, the more thorough :)
|
||||
|
||||
var builder = new flatbuffers.Builder();
|
||||
|
||||
lcg_reset(); // Keep it deterministic.
|
||||
|
||||
var objects = [];
|
||||
|
||||
// Generate num_fuzz_objects random objects each consisting of
|
||||
// fields_per_object fields, each of a random type.
|
||||
for (var i = 0; i < num_fuzz_objects; i++) {
|
||||
builder.startObject(fields_per_object);
|
||||
for (var f = 0; f < fields_per_object; f++) {
|
||||
var choice = lcg_rand() % test_values_max;
|
||||
switch (choice) {
|
||||
case 0: builder.addFieldInt8(f, bool_val, 0); break;
|
||||
case 1: builder.addFieldInt8(f, char_val, 0); break;
|
||||
case 2: builder.addFieldInt8(f, uchar_val, 0); break;
|
||||
case 3: builder.addFieldInt16(f, short_val, 0); break;
|
||||
case 4: builder.addFieldInt16(f, ushort_val, 0); break;
|
||||
case 5: builder.addFieldInt32(f, int_val, 0); break;
|
||||
case 6: builder.addFieldInt32(f, uint_val, 0); break;
|
||||
case 7: builder.addFieldInt64(f, long_val, 0n); break;
|
||||
case 8: builder.addFieldInt64(f, ulong_val, 0n); break;
|
||||
case 9: builder.addFieldFloat32(f, float_val, 0); break;
|
||||
case 10: builder.addFieldFloat64(f, double_val, 0); break;
|
||||
}
|
||||
}
|
||||
objects.push(builder.endObject());
|
||||
}
|
||||
builder.prep(8, 0); // Align whole buffer.
|
||||
|
||||
lcg_reset(); // Reset.
|
||||
|
||||
builder.finish(objects[objects.length - 1]);
|
||||
var bytes = new Uint8Array(builder.asUint8Array());
|
||||
var view = new DataView(bytes.buffer);
|
||||
|
||||
// Test that all objects we generated are readable and return the
|
||||
// expected values. We generate random objects in the same order
|
||||
// so this is deterministic.
|
||||
for (var i = 0; i < num_fuzz_objects; i++) {
|
||||
var offset = bytes.length - objects[i];
|
||||
for (var f = 0; f < fields_per_object; f++) {
|
||||
var choice = lcg_rand() % test_values_max;
|
||||
var vtable_offset = fieldIndexToOffset(f);
|
||||
var vtable = offset - view.getInt32(offset, true);
|
||||
assert.ok(vtable_offset < view.getInt16(vtable, true));
|
||||
var field_offset = offset + view.getInt16(vtable + vtable_offset, true);
|
||||
switch (choice) {
|
||||
case 0: assert.strictEqual(!!view.getInt8(field_offset), bool_val); break;
|
||||
case 1: assert.strictEqual(view.getInt8(field_offset), char_val); break;
|
||||
case 2: assert.strictEqual(view.getUint8(field_offset), uchar_val); break;
|
||||
case 3: assert.strictEqual(view.getInt16(field_offset, true), short_val); break;
|
||||
case 4: assert.strictEqual(view.getUint16(field_offset, true), ushort_val); break;
|
||||
case 5: assert.strictEqual(view.getInt32(field_offset, true), int_val); break;
|
||||
case 6: assert.strictEqual(view.getUint32(field_offset, true), uint_val); break;
|
||||
case 7: assert.strictEqual(view.getBigInt64(field_offset, true), long_val); break;
|
||||
case 8: assert.strictEqual(view.getBigUint64(field_offset, true), ulong_val); break;
|
||||
case 9: assert.strictEqual(view.getFloat32(field_offset, true), float_val); break;
|
||||
case 10: assert.strictEqual(view.getFloat64(field_offset, true), double_val); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function testSharedStrings() {
|
||||
var shared_string = "Hello world";
|
||||
var builder = new flatbuffers.Builder();
|
||||
let mainOffset = builder.createSharedString(shared_string);
|
||||
assert.strictEqual(builder.createSharedString(shared_string), mainOffset);
|
||||
}
|
||||
|
||||
function testNullStrings() {
|
||||
var builder = new flatbuffers.Builder();
|
||||
assert.strictEqual(builder.createString(null), 0);
|
||||
assert.strictEqual(builder.createSharedString(null), 0);
|
||||
assert.strictEqual(builder.createString(undefined), 0);
|
||||
assert.strictEqual(builder.createSharedString(undefined), 0);
|
||||
}
|
||||
|
||||
function testVectorOfStructs() {
|
||||
let monster = new MonsterT();
|
||||
monster.name = 'testVectorOfStructs';
|
||||
monster.test4 = [
|
||||
new TestT(1, 2),
|
||||
new TestT(3, 4)
|
||||
];
|
||||
|
||||
let builder = new flatbuffers.Builder();
|
||||
builder.finish(monster.pack(builder));
|
||||
|
||||
let decodedMonster = Monster.getRootAsMonster(builder.dataBuffer()).unpack();
|
||||
assert.strictEqual(decodedMonster.test4[0].a, 1);
|
||||
assert.strictEqual(decodedMonster.test4[0].b, 2);
|
||||
assert.strictEqual(decodedMonster.test4[1].a, 3);
|
||||
assert.strictEqual(decodedMonster.test4[1].b, 4);
|
||||
}
|
||||
|
||||
function testCreateByteVector() {
|
||||
const data = Uint8Array.from([1, 2, 3, 4, 5]);
|
||||
|
||||
const builder = new flatbuffers.Builder();
|
||||
const required = builder.createString("required");
|
||||
const offset = builder.createByteVector(data);
|
||||
|
||||
Monster.startMonster(builder);
|
||||
Monster.addName(builder, required);
|
||||
Monster.addInventory(builder, offset)
|
||||
builder.finish(Monster.endMonster(builder));
|
||||
|
||||
let decodedMonster = Monster.getRootAsMonster(builder.dataBuffer());
|
||||
assert.deepEqual(decodedMonster.inventoryArray(), data);
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -0,0 +1,367 @@
|
||||
// Run this using JavaScriptTest.sh
|
||||
var assert = require('assert');
|
||||
var fs = require('fs');
|
||||
|
||||
var flatbuffers = require('../../js/flatbuffers');
|
||||
var MyGame = require(process.argv[2]).MyGame;
|
||||
|
||||
function main() {
|
||||
|
||||
// First, let's test reading a FlatBuffer generated by C++ code:
|
||||
// This file was generated from monsterdata_test.json
|
||||
var data = new Uint8Array(fs.readFileSync('../monsterdata_test.mon'));
|
||||
|
||||
// Now test it:
|
||||
|
||||
var bb = new flatbuffers.ByteBuffer(data);
|
||||
testBuffer(bb);
|
||||
|
||||
// Second, let's create a FlatBuffer from scratch in JavaScript, and test it also.
|
||||
// We use an initial size of 1 to exercise the reallocation algorithm,
|
||||
// normally a size larger than the typical FlatBuffer you generate would be
|
||||
// better for performance.
|
||||
var fbb = new flatbuffers.Builder(1);
|
||||
createMonster(fbb);
|
||||
serializeAndTest(fbb);
|
||||
|
||||
// clear the builder, repeat tests
|
||||
var clearIterations = 100;
|
||||
var startingCapacity = fbb.bb.capacity();
|
||||
for (var i = 0; i < clearIterations; i++) {
|
||||
fbb.clear();
|
||||
createMonster(fbb);
|
||||
serializeAndTest(fbb);
|
||||
}
|
||||
// the capacity of our buffer shouldn't increase with the same size payload
|
||||
assert.strictEqual(fbb.bb.capacity(), startingCapacity);
|
||||
|
||||
test64bit();
|
||||
testUnicode();
|
||||
fuzzTest1();
|
||||
|
||||
console.log('FlatBuffers test: completed successfully');
|
||||
}
|
||||
|
||||
function createMonster(fbb) {
|
||||
// We set up the same values as monsterdata.json:
|
||||
|
||||
var str = fbb.createString('MyMonster');
|
||||
|
||||
var inv = MyGame.Example.Monster.createInventoryVector(fbb, [0, 1, 2, 3, 4]);
|
||||
|
||||
var fred = fbb.createString('Fred');
|
||||
MyGame.Example.Monster.startMonster(fbb);
|
||||
MyGame.Example.Monster.addName(fbb, fred);
|
||||
var mon2 = MyGame.Example.Monster.endMonster(fbb);
|
||||
|
||||
MyGame.Example.Monster.startTest4Vector(fbb, 2);
|
||||
MyGame.Example.Test.createTest(fbb, 10, 20);
|
||||
MyGame.Example.Test.createTest(fbb, 30, 40);
|
||||
var test4 = fbb.endVector();
|
||||
|
||||
var testArrayOfString = MyGame.Example.Monster.createTestarrayofstringVector(fbb, [
|
||||
fbb.createString('test1'),
|
||||
fbb.createString('test2')
|
||||
]);
|
||||
|
||||
MyGame.Example.Monster.startMonster(fbb);
|
||||
MyGame.Example.Monster.addPos(fbb, MyGame.Example.Vec3.createVec3(fbb, 1, 2, 3, 3, MyGame.Example.Color.Green, 5, 6));
|
||||
MyGame.Example.Monster.addHp(fbb, 80);
|
||||
MyGame.Example.Monster.addName(fbb, str);
|
||||
MyGame.Example.Monster.addInventory(fbb, inv);
|
||||
MyGame.Example.Monster.addTestType(fbb, MyGame.Example.Any.Monster);
|
||||
MyGame.Example.Monster.addTest(fbb, mon2);
|
||||
MyGame.Example.Monster.addTest4(fbb, test4);
|
||||
MyGame.Example.Monster.addTestarrayofstring(fbb, testArrayOfString);
|
||||
MyGame.Example.Monster.addTestbool(fbb, true);
|
||||
var mon = MyGame.Example.Monster.endMonster(fbb);
|
||||
|
||||
MyGame.Example.Monster.finishMonsterBuffer(fbb, mon);
|
||||
}
|
||||
|
||||
function serializeAndTest(fbb) {
|
||||
// Write the result to a file for debugging purposes:
|
||||
// Note that the binaries are not necessarily identical, since the JSON
|
||||
// parser may serialize in a slightly different order than the above
|
||||
// JavaScript code. They are functionally equivalent though.
|
||||
|
||||
fs.writeFileSync('monsterdata_javascript_wire.mon', new Buffer(fbb.asUint8Array()));
|
||||
|
||||
// Tests mutation first. This will verify that we did not trample any other
|
||||
// part of the byte buffer.
|
||||
testMutation(fbb.dataBuffer());
|
||||
|
||||
testBuffer(fbb.dataBuffer());
|
||||
}
|
||||
|
||||
function testMutation(bb) {
|
||||
var monster = MyGame.Example.Monster.getRootAsMonster(bb);
|
||||
|
||||
monster.mutate_hp(120);
|
||||
assert.strictEqual(monster.hp(), 120);
|
||||
|
||||
monster.mutate_hp(80);
|
||||
assert.strictEqual(monster.hp(), 80);
|
||||
|
||||
var manaRes = monster.mutate_mana(10);
|
||||
assert.strictEqual(manaRes, false); // Field was NOT present, because default value.
|
||||
|
||||
// TODO: There is not the availability to mutate structs or vectors.
|
||||
}
|
||||
|
||||
function testBuffer(bb) {
|
||||
assert.ok(MyGame.Example.Monster.bufferHasIdentifier(bb));
|
||||
|
||||
var monster = MyGame.Example.Monster.getRootAsMonster(bb);
|
||||
|
||||
assert.strictEqual(monster.hp(), 80);
|
||||
assert.strictEqual(monster.mana(), 150); // default
|
||||
|
||||
assert.strictEqual(monster.name(), 'MyMonster');
|
||||
|
||||
var pos = monster.pos();
|
||||
assert.strictEqual(pos.x(), 1);
|
||||
assert.strictEqual(pos.y(), 2);
|
||||
assert.strictEqual(pos.z(), 3);
|
||||
assert.strictEqual(pos.test1(), 3);
|
||||
assert.strictEqual(pos.test2(), MyGame.Example.Color.Green);
|
||||
var t = pos.test3();
|
||||
assert.strictEqual(t.a(), 5);
|
||||
assert.strictEqual(t.b(), 6);
|
||||
|
||||
assert.strictEqual(monster.testType(), MyGame.Example.Any.Monster);
|
||||
var monster2 = new MyGame.Example.Monster();
|
||||
assert.strictEqual(monster.test(monster2) != null, true);
|
||||
assert.strictEqual(monster2.name(), 'Fred');
|
||||
|
||||
assert.strictEqual(monster.inventoryLength(), 5);
|
||||
var invsum = 0;
|
||||
for (var i = 0; i < monster.inventoryLength(); i++) {
|
||||
invsum += monster.inventory(i);
|
||||
}
|
||||
assert.strictEqual(invsum, 10);
|
||||
|
||||
var invsum2 = 0;
|
||||
var invArr = monster.inventoryArray();
|
||||
for (var i = 0; i < invArr.length; i++) {
|
||||
invsum2 += invArr[i];
|
||||
}
|
||||
assert.strictEqual(invsum2, 10);
|
||||
|
||||
var test_0 = monster.test4(0);
|
||||
var test_1 = monster.test4(1);
|
||||
assert.strictEqual(monster.test4Length(), 2);
|
||||
assert.strictEqual(test_0.a() + test_0.b() + test_1.a() + test_1.b(), 100);
|
||||
|
||||
assert.strictEqual(monster.testarrayofstringLength(), 2);
|
||||
assert.strictEqual(monster.testarrayofstring(0), 'test1');
|
||||
assert.strictEqual(monster.testarrayofstring(1), 'test2');
|
||||
|
||||
assert.strictEqual(monster.testbool(), true);
|
||||
}
|
||||
|
||||
function test64bit() {
|
||||
var fbb = new flatbuffers.Builder();
|
||||
var required = fbb.createString('required');
|
||||
|
||||
MyGame.Example.Stat.startStat(fbb);
|
||||
var stat2 = MyGame.Example.Stat.endStat(fbb);
|
||||
|
||||
MyGame.Example.Monster.startMonster(fbb);
|
||||
MyGame.Example.Monster.addName(fbb, required);
|
||||
MyGame.Example.Monster.addTestempty(fbb, stat2);
|
||||
var mon2 = MyGame.Example.Monster.endMonster(fbb);
|
||||
|
||||
MyGame.Example.Stat.startStat(fbb);
|
||||
MyGame.Example.Stat.addVal(fbb, 0x2345678987654321n);
|
||||
var stat = MyGame.Example.Stat.endStat(fbb);
|
||||
|
||||
MyGame.Example.Monster.startMonster(fbb);
|
||||
MyGame.Example.Monster.addName(fbb, required);
|
||||
MyGame.Example.Monster.addEnemy(fbb, mon2);
|
||||
MyGame.Example.Monster.addTestempty(fbb, stat);
|
||||
var mon = MyGame.Example.Monster.endMonster(fbb);
|
||||
|
||||
MyGame.Example.Monster.finishMonsterBuffer(fbb, mon);
|
||||
var bytes = fbb.asUint8Array();
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
var bb = new flatbuffers.ByteBuffer(bytes);
|
||||
assert.ok(MyGame.Example.Monster.bufferHasIdentifier(bb));
|
||||
var mon = MyGame.Example.Monster.getRootAsMonster(bb);
|
||||
|
||||
var stat = mon.testempty();
|
||||
assert.strictEqual(stat != null, true);
|
||||
assert.strictEqual(stat.val() != null, true);
|
||||
assert.strictEqual(stat.val(), 2541551405100253985n);
|
||||
|
||||
var mon2 = mon.enemy();
|
||||
assert.strictEqual(mon2 != null, true);
|
||||
stat = mon2.testempty();
|
||||
assert.strictEqual(stat != null, true);
|
||||
assert.strictEqual(stat.val() != null, true);
|
||||
assert.strictEqual(stat.val(), 0n); // default value
|
||||
}
|
||||
|
||||
function testUnicode() {
|
||||
var correct = fs.readFileSync('unicode_test.mon');
|
||||
var json = JSON.parse(fs.readFileSync('../unicode_test.json', 'utf8'));
|
||||
|
||||
// Test reading
|
||||
function testReadingUnicode(bb) {
|
||||
var monster = MyGame.Example.Monster.getRootAsMonster(bb);
|
||||
assert.strictEqual(monster.name(), json.name);
|
||||
assert.deepEqual(new Buffer(monster.name(flatbuffers.Encoding.UTF8_BYTES)), new Buffer(json.name));
|
||||
assert.strictEqual(monster.testarrayoftablesLength(), json.testarrayoftables.length);
|
||||
json.testarrayoftables.forEach(function(table, i) {
|
||||
var value = monster.testarrayoftables(i);
|
||||
assert.strictEqual(value.name(), table.name);
|
||||
assert.deepEqual(new Buffer(value.name(flatbuffers.Encoding.UTF8_BYTES)), new Buffer(table.name));
|
||||
});
|
||||
assert.strictEqual(monster.testarrayofstringLength(), json.testarrayofstring.length);
|
||||
json.testarrayofstring.forEach(function(string, i) {
|
||||
assert.strictEqual(monster.testarrayofstring(i), string);
|
||||
assert.deepEqual(new Buffer(monster.testarrayofstring(i, flatbuffers.Encoding.UTF8_BYTES)), new Buffer(string));
|
||||
});
|
||||
}
|
||||
testReadingUnicode(new flatbuffers.ByteBuffer(new Uint8Array(correct)));
|
||||
|
||||
// Test writing
|
||||
var fbb = new flatbuffers.Builder();
|
||||
var name = fbb.createString(json.name);
|
||||
var testarrayoftablesOffsets = json.testarrayoftables.map(function(table) {
|
||||
var name = fbb.createString(new Uint8Array(new Buffer(table.name)));
|
||||
MyGame.Example.Monster.startMonster(fbb);
|
||||
MyGame.Example.Monster.addName(fbb, name);
|
||||
return MyGame.Example.Monster.endMonster(fbb);
|
||||
});
|
||||
var testarrayoftablesOffset = MyGame.Example.Monster.createTestarrayoftablesVector(fbb,
|
||||
testarrayoftablesOffsets);
|
||||
var testarrayofstringOffset = MyGame.Example.Monster.createTestarrayofstringVector(fbb,
|
||||
json.testarrayofstring.map(function(string) { return fbb.createString(string); }));
|
||||
MyGame.Example.Monster.startMonster(fbb);
|
||||
MyGame.Example.Monster.addTestarrayofstring(fbb, testarrayofstringOffset);
|
||||
MyGame.Example.Monster.addTestarrayoftables(fbb, testarrayoftablesOffset);
|
||||
MyGame.Example.Monster.addName(fbb, name);
|
||||
MyGame.Example.Monster.finishSizePrefixedMonsterBuffer(fbb, MyGame.Example.Monster.endMonster(fbb));
|
||||
var bb = new flatbuffers.ByteBuffer(fbb.asUint8Array())
|
||||
bb.setPosition(4);
|
||||
testReadingUnicode(bb);
|
||||
}
|
||||
|
||||
var __imul = Math.imul ? Math.imul : function(a, b) {
|
||||
var ah = a >> 16 & 65535;
|
||||
var bh = b >> 16 & 65535;
|
||||
var al = a & 65535;
|
||||
var bl = b & 65535;
|
||||
return al * bl + (ah * bl + al * bh << 16) | 0;
|
||||
};
|
||||
|
||||
// Include simple random number generator to ensure results will be the
|
||||
// same cross platform.
|
||||
// http://en.wikipedia.org/wiki/Park%E2%80%93Miller_random_number_generator
|
||||
var lcg_seed = 48271;
|
||||
|
||||
function lcg_rand() {
|
||||
return lcg_seed = (__imul(lcg_seed, 279470273) >>> 0) % 4294967291;
|
||||
}
|
||||
|
||||
function lcg_reset() {
|
||||
lcg_seed = 48271;
|
||||
}
|
||||
|
||||
// Converts a Field ID to a virtual table offset.
|
||||
function fieldIndexToOffset(field_id) {
|
||||
// Should correspond to what EndTable() below builds up.
|
||||
var fixed_fields = 2; // Vtable size and Object Size.
|
||||
return (field_id + fixed_fields) * 2;
|
||||
}
|
||||
|
||||
// Low level stress/fuzz test: serialize/deserialize a variety of
|
||||
// different kinds of data in different combinations
|
||||
function fuzzTest1() {
|
||||
|
||||
// Values we're testing against: chosen to ensure no bits get chopped
|
||||
// off anywhere, and also be different from eachother.
|
||||
var bool_val = true;
|
||||
var char_val = -127; // 0x81
|
||||
var uchar_val = 0xFF;
|
||||
var short_val = -32222; // 0x8222;
|
||||
var ushort_val = 0xFEEE;
|
||||
var int_val = 0x83333333 | 0;
|
||||
var uint_val = 0xFDDDDDDD;
|
||||
var long_val = BigInt.asIntN(64, 0x8444444444444444n);
|
||||
var ulong_val = BigInt.asUintN(64, 0xFCCCCCCCCCCCCCCCn);
|
||||
var float_val = new Float32Array([3.14159])[0];
|
||||
var double_val = 3.14159265359;
|
||||
|
||||
var test_values_max = 11;
|
||||
var fields_per_object = 4;
|
||||
var num_fuzz_objects = 10000; // The higher, the more thorough :)
|
||||
|
||||
var builder = new flatbuffers.Builder();
|
||||
|
||||
lcg_reset(); // Keep it deterministic.
|
||||
|
||||
var objects = [];
|
||||
|
||||
// Generate num_fuzz_objects random objects each consisting of
|
||||
// fields_per_object fields, each of a random type.
|
||||
for (var i = 0; i < num_fuzz_objects; i++) {
|
||||
builder.startObject(fields_per_object);
|
||||
for (var f = 0; f < fields_per_object; f++) {
|
||||
var choice = lcg_rand() % test_values_max;
|
||||
switch (choice) {
|
||||
case 0: builder.addFieldInt8(f, bool_val, 0); break;
|
||||
case 1: builder.addFieldInt8(f, char_val, 0); break;
|
||||
case 2: builder.addFieldInt8(f, uchar_val, 0); break;
|
||||
case 3: builder.addFieldInt16(f, short_val, 0); break;
|
||||
case 4: builder.addFieldInt16(f, ushort_val, 0); break;
|
||||
case 5: builder.addFieldInt32(f, int_val, 0); break;
|
||||
case 6: builder.addFieldInt32(f, uint_val, 0); break;
|
||||
case 7: builder.addFieldInt64(f, long_val, 0n); break;
|
||||
case 8: builder.addFieldInt64(f, ulong_val, 0n); break;
|
||||
case 9: builder.addFieldFloat32(f, float_val, 0); break;
|
||||
case 10: builder.addFieldFloat64(f, double_val, 0); break;
|
||||
}
|
||||
}
|
||||
objects.push(builder.endObject());
|
||||
}
|
||||
builder.prep(8, 0); // Align whole buffer.
|
||||
|
||||
lcg_reset(); // Reset.
|
||||
|
||||
builder.finish(objects[objects.length - 1]);
|
||||
var bytes = new Uint8Array(builder.asUint8Array());
|
||||
var view = new DataView(bytes.buffer);
|
||||
|
||||
// Test that all objects we generated are readable and return the
|
||||
// expected values. We generate random objects in the same order
|
||||
// so this is deterministic.
|
||||
for (var i = 0; i < num_fuzz_objects; i++) {
|
||||
var offset = bytes.length - objects[i];
|
||||
for (var f = 0; f < fields_per_object; f++) {
|
||||
var choice = lcg_rand() % test_values_max;
|
||||
var vtable_offset = fieldIndexToOffset(f);
|
||||
var vtable = offset - view.getInt32(offset, true);
|
||||
assert.ok(vtable_offset < view.getInt16(vtable, true));
|
||||
var field_offset = offset + view.getInt16(vtable + vtable_offset, true);
|
||||
switch (choice) {
|
||||
case 0: assert.strictEqual(!!view.getInt8(field_offset), bool_val); break;
|
||||
case 1: assert.strictEqual(view.getInt8(field_offset), char_val); break;
|
||||
case 2: assert.strictEqual(view.getUint8(field_offset), uchar_val); break;
|
||||
case 3: assert.strictEqual(view.getInt16(field_offset, true), short_val); break;
|
||||
case 4: assert.strictEqual(view.getUint16(field_offset, true), ushort_val); break;
|
||||
case 5: assert.strictEqual(view.getInt32(field_offset, true), int_val); break;
|
||||
case 6: assert.strictEqual(view.getUint32(field_offset, true), uint_val); break;
|
||||
case 7: assert.strictEqual(view.getBigInt64(field_offset, true), long_val); break;
|
||||
case 8: assert.strictEqual(view.getBigUint64(field_offset, true), ulong_val); break;
|
||||
case 9: assert.strictEqual(view.getFloat32(field_offset, true), float_val); break;
|
||||
case 10: assert.strictEqual(view.getFloat64(field_offset, true), double_val); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -0,0 +1,26 @@
|
||||
import assert from 'assert'
|
||||
import * as flatbuffers from 'flatbuffers'
|
||||
import {UnionUnderlyingType as Test} from './union_underlying_type_test.js'
|
||||
|
||||
function main() {
|
||||
let a = new Test.AT();
|
||||
a.a = 1;
|
||||
let b = new Test.BT();
|
||||
b.b = "foo";
|
||||
let c = new Test.CT();
|
||||
c.c = true;
|
||||
let d = new Test.DT();
|
||||
d.testUnionType = Test.ABC.A;
|
||||
d.testUnion = a;
|
||||
d.testVectorOfUnionType = [Test.ABC.A, Test.ABC.B, Test.ABC.C];
|
||||
d.testVectorOfUnion = [a, b, c];
|
||||
|
||||
let fbb = new flatbuffers.Builder();
|
||||
let offset = d.pack(fbb);
|
||||
fbb.finish(offset);
|
||||
|
||||
let unpacked = Test.D.getRootAsD(fbb.dataBuffer()).unpack();
|
||||
assert.equal(JSON.stringify(unpacked), JSON.stringify(d));
|
||||
}
|
||||
|
||||
main()
|
||||
@@ -0,0 +1,111 @@
|
||||
import assert from 'assert'
|
||||
import * as flatbuffers from 'flatbuffers'
|
||||
|
||||
import { Character } from './union_vector/character.js'
|
||||
import { BookReader, BookReaderT } from './union_vector/book-reader.js'
|
||||
import { Attacker, AttackerT } from './union_vector/attacker.js'
|
||||
import { Movie, MovieT } from './union_vector/movie.js'
|
||||
|
||||
var charTypes = [
|
||||
Character.Belle,
|
||||
Character.MuLan,
|
||||
Character.BookFan,
|
||||
Character.Other
|
||||
];
|
||||
|
||||
function testMovieBuf(movie) {
|
||||
assert.strictEqual(movie.charactersTypeLength(), charTypes.length);
|
||||
assert.strictEqual(movie.charactersLength(), movie.charactersTypeLength());
|
||||
|
||||
for (var i = 0; i < charTypes.length; ++i) {
|
||||
assert.strictEqual(movie.charactersType(i), charTypes[i]);
|
||||
}
|
||||
|
||||
var bookReader7 = movie.characters(0, new BookReader());
|
||||
assert.strictEqual(bookReader7.booksRead(), 7);
|
||||
|
||||
var attacker = movie.characters(1, new Attacker());
|
||||
assert.strictEqual(attacker.swordAttackDamage(), 5);
|
||||
|
||||
var bookReader2 = movie.characters(2, new BookReader());
|
||||
assert.strictEqual(bookReader2.booksRead(), 2);
|
||||
|
||||
var other = movie.characters(3, '');
|
||||
assert.strictEqual(other, "I am other");
|
||||
}
|
||||
|
||||
function testMovieUnpack(movie) {
|
||||
assert.strictEqual(movie.charactersType.length, charTypes.length);
|
||||
assert.strictEqual(movie.characters.length, movie.charactersType.length);
|
||||
|
||||
for (var i = 0; i < charTypes.length; ++i) {
|
||||
assert.strictEqual(movie.charactersType[i], charTypes[i]);
|
||||
}
|
||||
|
||||
var bookReader7 = movie.characters[0];
|
||||
assert.strictEqual(bookReader7 instanceof BookReaderT, true);
|
||||
assert.strictEqual(bookReader7.booksRead, 7);
|
||||
|
||||
var attacker = movie.characters[1];
|
||||
assert.strictEqual(attacker instanceof AttackerT, true);
|
||||
assert.strictEqual(attacker.swordAttackDamage, 5);
|
||||
|
||||
var bookReader2 = movie.characters[2];
|
||||
assert.strictEqual(bookReader2 instanceof BookReaderT, true);
|
||||
assert.strictEqual(bookReader2.booksRead, 2);
|
||||
|
||||
var other = movie.characters[3];
|
||||
assert.strictEqual(other, "I am other");
|
||||
}
|
||||
|
||||
function createMovie(fbb) {
|
||||
Attacker.startAttacker(fbb);
|
||||
Attacker.addSwordAttackDamage(fbb, 5);
|
||||
var attackerOffset = Attacker.endAttacker(fbb);
|
||||
|
||||
var charTypesOffset = Movie.createCharactersTypeVector(fbb, charTypes);
|
||||
var charsOffset = 0;
|
||||
|
||||
let otherOffset = fbb.createString("I am other");
|
||||
|
||||
charsOffset = Movie.createCharactersVector(
|
||||
fbb,
|
||||
[
|
||||
BookReader.createBookReader(fbb, 7),
|
||||
attackerOffset,
|
||||
BookReader.createBookReader(fbb, 2),
|
||||
otherOffset
|
||||
]
|
||||
);
|
||||
|
||||
Movie.startMovie(fbb);
|
||||
Movie.addCharactersType(fbb, charTypesOffset);
|
||||
Movie.addCharacters(fbb, charsOffset);
|
||||
Movie.finishMovieBuffer(fbb, Movie.endMovie(fbb))
|
||||
}
|
||||
|
||||
function main() {
|
||||
var fbb = new flatbuffers.Builder();
|
||||
|
||||
createMovie(fbb);
|
||||
|
||||
var buf = new flatbuffers.ByteBuffer(fbb.asUint8Array());
|
||||
|
||||
var movie = Movie.getRootAsMovie(buf);
|
||||
testMovieBuf(movie);
|
||||
|
||||
testMovieUnpack(movie.unpack());
|
||||
|
||||
var movie_to = new MovieT();
|
||||
movie.unpackTo(movie_to);
|
||||
testMovieUnpack(movie_to);
|
||||
|
||||
fbb.clear();
|
||||
Movie.finishMovieBuffer(fbb, movie_to.pack(fbb));
|
||||
var unpackBuf = new flatbuffers.ByteBuffer(fbb.asUint8Array());
|
||||
testMovieBuf(Movie.getRootAsMovie(unpackBuf));
|
||||
|
||||
console.log('FlatBuffers union vector test: completed successfully');
|
||||
}
|
||||
|
||||
main();
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# 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.
|
||||
|
||||
import platform
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Get the path where this script is located so we can invoke the script from
|
||||
# any directory and have the paths work correctly.
|
||||
tests_path = Path(__file__).parent.resolve()
|
||||
|
||||
# Get the root path as an absolute path, so all derived paths are absolute.
|
||||
root_path = tests_path.parent.parent.absolute()
|
||||
|
||||
# Windows works with subprocess.run a bit differently.
|
||||
is_windows = platform.system() == "Windows"
|
||||
|
||||
# Get the location of the flatc executable
|
||||
flatc_exe = Path("flatc.exe" if is_windows else "flatc")
|
||||
|
||||
# Find and assert flatc compiler is present.
|
||||
if root_path in flatc_exe.parents:
|
||||
flatc_exe = flatc_exe.relative_to(root_path)
|
||||
flatc_path = Path(root_path, flatc_exe)
|
||||
assert flatc_path.exists(), "Cannot find the flatc compiler " + str(flatc_path)
|
||||
|
||||
def check_call(args, cwd=tests_path):
|
||||
subprocess.check_call(args, cwd=str(cwd), shell=is_windows)
|
||||
|
||||
# Execute the flatc compiler with the specified parameters
|
||||
def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path):
|
||||
print("Invoking flatc on schema " + str(schema))
|
||||
cmd = [str(flatc_path)] + options
|
||||
if prefix:
|
||||
cmd += ["-o"] + [prefix]
|
||||
if include:
|
||||
cmd += ["-I"] + [include]
|
||||
cmd += [schema] if isinstance(schema, str) else schema
|
||||
if data:
|
||||
cmd += [data] if isinstance(data, str) else data
|
||||
check_call(cmd)
|
||||
|
||||
# Execute esbuild with the specified parameters
|
||||
def esbuild(input, output):
|
||||
cmd = ["esbuild", input, "--outfile=" + output]
|
||||
cmd += ["--format=cjs", "--bundle", "--external:flatbuffers"]
|
||||
check_call(cmd)
|
||||
|
||||
print("Removing node_modules/ directory...")
|
||||
shutil.rmtree(Path(tests_path, "node_modules"), ignore_errors=True)
|
||||
|
||||
check_call(["npm", "install", "--silent"])
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api", "--ts-entry-points", "--ts-flat-files"],
|
||||
schema="../monster_test.fbs",
|
||||
include="../include_test",
|
||||
)
|
||||
esbuild("monster_test.ts", "monster_test_generated.cjs")
|
||||
|
||||
flatc(
|
||||
options=["--gen-object-api", "-b"],
|
||||
schema="../monster_test.fbs",
|
||||
include="../include_test",
|
||||
data="../unicode_test.json",
|
||||
)
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api", "--ts-entry-points", "--ts-flat-files"],
|
||||
schema="../union_vector/union_vector.fbs",
|
||||
prefix="union_vector",
|
||||
)
|
||||
esbuild("union_vector/union_vector.ts", "union_vector/union_vector_generated.cjs")
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings"],
|
||||
schema="../optional_scalars.fbs",
|
||||
)
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings", "--ts-no-import-ext"],
|
||||
schema="../optional_scalars.fbs",
|
||||
prefix="no_import_ext",
|
||||
)
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-object-api", "--ts-entry-points", "--ts-flat-files"],
|
||||
schema="arrays_test_complex/arrays_test_complex.fbs",
|
||||
prefix="arrays_test_complex"
|
||||
)
|
||||
esbuild("arrays_test_complex/my-game/example.ts", "arrays_test_complex/arrays_test_complex_generated.cjs")
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api", "--ts-entry-points", "--ts-flat-files"],
|
||||
schema=[
|
||||
"typescript_keywords.fbs",
|
||||
"test_dir/typescript_include.fbs",
|
||||
"test_dir/typescript_transitive_include.fbs",
|
||||
"../../reflection/reflection.fbs",
|
||||
],
|
||||
include="../../",
|
||||
)
|
||||
esbuild("typescript_keywords.ts", "typescript_keywords_generated.cjs")
|
||||
|
||||
flatc(
|
||||
options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api", "--ts-entry-points", "--ts-flat-files"],
|
||||
schema="../union_underlying_type_test.fbs"
|
||||
)
|
||||
|
||||
print("Running TypeScript Compiler...")
|
||||
check_call(["tsc"])
|
||||
print("Running TypeScript Compiler in old node resolution mode for no_import_ext...")
|
||||
check_call(["tsc", "-p", "./tsconfig.node.json"])
|
||||
|
||||
NODE_CMD = ["node"]
|
||||
|
||||
print("Running TypeScript Tests...")
|
||||
check_call(NODE_CMD + ["JavaScriptTest"])
|
||||
check_call(NODE_CMD + ["JavaScriptUnionVectorTest"])
|
||||
check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"])
|
||||
check_call(NODE_CMD + ["JavaScriptComplexArraysTest"])
|
||||
check_call(NODE_CMD + ["JavaScriptUnionUnderlyingTypeTest"])
|
||||
|
||||
print("Running old v1 TypeScript Tests...")
|
||||
check_call(NODE_CMD + ["JavaScriptTestv1.cjs", "./monster_test_generated.cjs"])
|
||||
@@ -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";
|
||||
+460
@@ -0,0 +1,460 @@
|
||||
"use strict";
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||||
// If the importer is in node compatibility mode or this is not an ESM
|
||||
// file that has been converted to a CommonJS file using a Babel-
|
||||
// compatible transform (i.e. "__esModule" has not been set), then set
|
||||
// "default" to the CommonJS "module.exports" for node compatibility.
|
||||
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||||
mod
|
||||
));
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// arrays_test_complex/my-game/example.ts
|
||||
var example_exports = {};
|
||||
__export(example_exports, {
|
||||
ArrayStruct: () => ArrayStruct,
|
||||
ArrayStructT: () => ArrayStructT,
|
||||
ArrayTable: () => ArrayTable,
|
||||
ArrayTableT: () => ArrayTableT,
|
||||
InnerStruct: () => InnerStruct,
|
||||
InnerStructT: () => InnerStructT,
|
||||
NestedStruct: () => NestedStruct,
|
||||
NestedStructT: () => NestedStructT,
|
||||
OuterStruct: () => OuterStruct,
|
||||
OuterStructT: () => OuterStructT,
|
||||
TestEnum: () => TestEnum
|
||||
});
|
||||
module.exports = __toCommonJS(example_exports);
|
||||
|
||||
// arrays_test_complex/my-game/example/inner-struct.js
|
||||
var InnerStruct = class {
|
||||
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) {
|
||||
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() {
|
||||
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();
|
||||
}
|
||||
};
|
||||
var InnerStructT = class {
|
||||
constructor(a = 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);
|
||||
}
|
||||
};
|
||||
|
||||
// arrays_test_complex/my-game/example/outer-struct.js
|
||||
var OuterStruct = class {
|
||||
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) {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
};
|
||||
var OuterStructT = class {
|
||||
constructor(a = false, b = 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) {
|
||||
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);
|
||||
}
|
||||
};
|
||||
|
||||
// arrays_test_complex/my-game/example/test-enum.js
|
||||
var TestEnum;
|
||||
(function(TestEnum2) {
|
||||
TestEnum2[TestEnum2["A"] = 0] = "A";
|
||||
TestEnum2[TestEnum2["B"] = 1] = "B";
|
||||
TestEnum2[TestEnum2["C"] = 2] = "C";
|
||||
})(TestEnum || (TestEnum = {}));
|
||||
|
||||
// arrays_test_complex/my-game/example/nested-struct.js
|
||||
var NestedStruct = class {
|
||||
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) {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
};
|
||||
var NestedStructT = class {
|
||||
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);
|
||||
}
|
||||
};
|
||||
|
||||
// arrays_test_complex/my-game/example/array-struct.js
|
||||
var ArrayStruct = class {
|
||||
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) {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
};
|
||||
var ArrayStructT = class {
|
||||
constructor(aUnderscore = 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);
|
||||
}
|
||||
};
|
||||
|
||||
// arrays_test_complex/my-game/example/array-table.js
|
||||
var flatbuffers = __toESM(require("flatbuffers"), 1);
|
||||
var ArrayTable = 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;
|
||||
}
|
||||
};
|
||||
var ArrayTableT = class {
|
||||
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);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,6 @@
|
||||
export { ArrayStruct, ArrayStructT } from './example/array-struct.js';
|
||||
export { ArrayTable, ArrayTableT } from './example/array-table.js';
|
||||
export { InnerStruct, InnerStructT } from './example/inner-struct.js';
|
||||
export { NestedStruct, NestedStructT } from './example/nested-struct.js';
|
||||
export { OuterStruct, OuterStructT } from './example/outer-struct.js';
|
||||
export { TestEnum } from './example/test-enum.js';
|
||||
@@ -0,0 +1,8 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export { ArrayStruct, ArrayStructT } from './example/array-struct.js';
|
||||
export { ArrayTable, ArrayTableT } from './example/array-table.js';
|
||||
export { InnerStruct, InnerStructT } from './example/inner-struct.js';
|
||||
export { NestedStruct, NestedStructT } from './example/nested-struct.js';
|
||||
export { OuterStruct, OuterStructT } from './example/outer-struct.js';
|
||||
export { TestEnum } from './example/test-enum.js';
|
||||
@@ -0,0 +1,10 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export { ArrayStruct, ArrayStructT } from './example/array-struct.js';
|
||||
export { ArrayTable, ArrayTableT } from './example/array-table.js';
|
||||
export { InnerStruct, InnerStructT } from './example/inner-struct.js';
|
||||
export { NestedStruct, NestedStructT } from './example/nested-struct.js';
|
||||
export { OuterStruct, OuterStructT } from './example/outer-struct.js';
|
||||
export { TestEnum } from './example/test-enum.js';
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { NestedStruct, NestedStructT } from '../../my-game/example/nested-struct.js';
|
||||
import { OuterStruct, OuterStructT } from '../../my-game/example/outer-struct.js';
|
||||
export declare class ArrayStruct implements flatbuffers.IUnpackableObject<ArrayStructT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): ArrayStruct;
|
||||
aUnderscore(): number;
|
||||
bUnderscore(index: number): number | null;
|
||||
c(): number;
|
||||
d(index: number, obj?: NestedStruct): NestedStruct | null;
|
||||
e(): number;
|
||||
f(index: number, obj?: OuterStruct): OuterStruct | null;
|
||||
g(index: number): bigint | null;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
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;
|
||||
unpack(): ArrayStructT;
|
||||
unpackTo(_o: ArrayStructT): void;
|
||||
}
|
||||
export declare class ArrayStructT implements flatbuffers.IGeneratedObject {
|
||||
aUnderscore: number;
|
||||
bUnderscore: (number)[];
|
||||
c: number;
|
||||
d: (NestedStructT)[];
|
||||
e: number;
|
||||
f: (OuterStructT)[];
|
||||
g: (bigint)[];
|
||||
constructor(aUnderscore?: number, bUnderscore?: (number)[], c?: number, d?: (NestedStructT)[], e?: number, f?: (OuterStructT)[], g?: (bigint)[]);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
import { NestedStruct, NestedStructT } from '../../my-game/example/nested-struct.js';
|
||||
import { OuterStruct, OuterStructT } from '../../my-game/example/outer-struct.js';
|
||||
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) {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
import { NestedStruct, NestedStructT } from '../../my-game/example/nested-struct.js';
|
||||
import { OuterStruct, OuterStructT } from '../../my-game/example/outer-struct.js';
|
||||
|
||||
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { ArrayStruct, ArrayStructT } from '../../my-game/example/array-struct.js';
|
||||
export declare class ArrayTable implements flatbuffers.IUnpackableObject<ArrayTableT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): ArrayTable;
|
||||
static getRootAsArrayTable(bb: flatbuffers.ByteBuffer, obj?: ArrayTable): ArrayTable;
|
||||
static getSizePrefixedRootAsArrayTable(bb: flatbuffers.ByteBuffer, obj?: ArrayTable): ArrayTable;
|
||||
static bufferHasIdentifier(bb: flatbuffers.ByteBuffer): boolean;
|
||||
a(): string | null;
|
||||
a(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
|
||||
cUnderscore(obj?: ArrayStruct): ArrayStruct | null;
|
||||
static getFullyQualifiedName(): string;
|
||||
static startArrayTable(builder: flatbuffers.Builder): void;
|
||||
static addA(builder: flatbuffers.Builder, aOffset: flatbuffers.Offset): void;
|
||||
static addCUnderscore(builder: flatbuffers.Builder, cUnderscoreOffset: flatbuffers.Offset): void;
|
||||
static endArrayTable(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
static finishArrayTableBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
|
||||
static finishSizePrefixedArrayTableBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
|
||||
unpack(): ArrayTableT;
|
||||
unpackTo(_o: ArrayTableT): void;
|
||||
}
|
||||
export declare class ArrayTableT implements flatbuffers.IGeneratedObject {
|
||||
a: string | Uint8Array | null;
|
||||
cUnderscore: ArrayStructT | null;
|
||||
constructor(a?: string | Uint8Array | null, cUnderscore?: ArrayStructT | null);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { ArrayStruct } from '../../my-game/example/array-struct.js';
|
||||
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);
|
||||
}
|
||||
}
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
import { ArrayStruct, ArrayStructT } from '../../my-game/example/array-struct.js';
|
||||
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
export declare class InnerStruct implements flatbuffers.IUnpackableObject<InnerStructT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): InnerStruct;
|
||||
a(): number;
|
||||
b(index: number): number | null;
|
||||
c(): number;
|
||||
dUnderscore(): bigint;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
static createInnerStruct(builder: flatbuffers.Builder, a: number, b: number[] | null, c: number, d_underscore: bigint): flatbuffers.Offset;
|
||||
unpack(): InnerStructT;
|
||||
unpackTo(_o: InnerStructT): void;
|
||||
}
|
||||
export declare class InnerStructT implements flatbuffers.IGeneratedObject {
|
||||
a: number;
|
||||
b: (number)[];
|
||||
c: number;
|
||||
dUnderscore: bigint;
|
||||
constructor(a?: number, b?: (number)[], c?: number, dUnderscore?: bigint);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
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) {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { OuterStruct, OuterStructT } from '../../my-game/example/outer-struct.js';
|
||||
import { TestEnum } from '../../my-game/example/test-enum.js';
|
||||
export declare class NestedStruct implements flatbuffers.IUnpackableObject<NestedStructT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): NestedStruct;
|
||||
a(index: number): number | null;
|
||||
b(): TestEnum;
|
||||
cUnderscore(index: number): TestEnum | null;
|
||||
dOuter(index: number, obj?: OuterStruct): OuterStruct | null;
|
||||
e(index: number): bigint | null;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
static createNestedStruct(builder: flatbuffers.Builder, a: number[] | null, b: TestEnum, c_underscore: number[] | null, d_outer: (any | OuterStructT)[] | null, e: bigint[] | null): flatbuffers.Offset;
|
||||
unpack(): NestedStructT;
|
||||
unpackTo(_o: NestedStructT): void;
|
||||
}
|
||||
export declare class NestedStructT implements flatbuffers.IGeneratedObject {
|
||||
a: (number)[];
|
||||
b: TestEnum;
|
||||
cUnderscore: (TestEnum)[];
|
||||
dOuter: (OuterStructT)[];
|
||||
e: (bigint)[];
|
||||
constructor(a?: (number)[], b?: TestEnum, cUnderscore?: (TestEnum)[], dOuter?: (OuterStructT)[], e?: (bigint)[]);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
import { OuterStruct, OuterStructT } from '../../my-game/example/outer-struct.js';
|
||||
import { TestEnum } from '../../my-game/example/test-enum.js';
|
||||
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) {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
import { OuterStruct, OuterStructT } from '../../my-game/example/outer-struct.js';
|
||||
import { TestEnum } from '../../my-game/example/test-enum.js';
|
||||
|
||||
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { InnerStruct, InnerStructT } from '../../my-game/example/inner-struct.js';
|
||||
export declare class OuterStruct implements flatbuffers.IUnpackableObject<OuterStructT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): OuterStruct;
|
||||
a(): boolean;
|
||||
b(): number;
|
||||
cUnderscore(obj?: InnerStruct): InnerStruct | null;
|
||||
d(index: number, obj?: InnerStruct): InnerStruct | null;
|
||||
e(obj?: InnerStruct): InnerStruct | null;
|
||||
f(index: number): number | null;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
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;
|
||||
unpack(): OuterStructT;
|
||||
unpackTo(_o: OuterStructT): void;
|
||||
}
|
||||
export declare class OuterStructT implements flatbuffers.IGeneratedObject {
|
||||
a: boolean;
|
||||
b: number;
|
||||
cUnderscore: InnerStructT | null;
|
||||
d: (InnerStructT)[];
|
||||
e: InnerStructT | null;
|
||||
f: (number)[];
|
||||
constructor(a?: boolean, b?: number, cUnderscore?: InnerStructT | null, d?: (InnerStructT)[], e?: InnerStructT | null, f?: (number)[]);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
import { InnerStruct, InnerStructT } from '../../my-game/example/inner-struct.js';
|
||||
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) {
|
||||
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() {
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
import { InnerStruct, InnerStructT } from '../../my-game/example/inner-struct.js';
|
||||
|
||||
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
export declare enum TestEnum {
|
||||
A = 0,
|
||||
B = 1,
|
||||
C = 2
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export var TestEnum;
|
||||
(function (TestEnum) {
|
||||
TestEnum[TestEnum["A"] = 0] = "A";
|
||||
TestEnum[TestEnum["B"] = 1] = "B";
|
||||
TestEnum[TestEnum["C"] = 2] = "C";
|
||||
})(TestEnum || (TestEnum = {}));
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export enum TestEnum {
|
||||
A = 0,
|
||||
B = 1,
|
||||
C = 2
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This test makes sure that a separate repository can import the flatbuffers
|
||||
# repository and use it in their JavaScript code.
|
||||
|
||||
# --- begin runfiles.bash initialization v3 ---
|
||||
# Copy-pasted from the Bazel Bash runfiles library v3.
|
||||
set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash
|
||||
source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \
|
||||
source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \
|
||||
source "$0.runfiles/$f" 2>/dev/null || \
|
||||
source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \
|
||||
source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \
|
||||
{ echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e
|
||||
# --- end runfiles.bash initialization v3 ---
|
||||
|
||||
BAZEL_BIN="$(rlocation bazel_linux_x86_64/file/bazel)"
|
||||
readonly BAZEL_BIN
|
||||
|
||||
if [[ ! -x "${BAZEL_BIN}" ]]; then
|
||||
echo "Failed to find the bazel binary." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export PATH="$(dirname "${BAZEL_BIN}"):${PATH}"
|
||||
|
||||
cd tests/ts/bazel_repository_test_dir/
|
||||
|
||||
bazel test //...
|
||||
@@ -0,0 +1 @@
|
||||
node_modules
|
||||
@@ -0,0 +1 @@
|
||||
build --symlink_prefix=/
|
||||
@@ -0,0 +1 @@
|
||||
bazel-*
|
||||
+1
@@ -0,0 +1 @@
|
||||
../../../.npmrc
|
||||
@@ -0,0 +1,32 @@
|
||||
load("@aspect_rules_js//js:defs.bzl", "js_test")
|
||||
load("@aspect_rules_js//npm:defs.bzl", "npm_link_package")
|
||||
load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
|
||||
load("@npm//:defs.bzl", "npm_link_all_packages")
|
||||
|
||||
npm_link_all_packages(name = "node_modules")
|
||||
|
||||
npm_link_package(
|
||||
name = "node_modules/flatbuffers",
|
||||
src = "@com_github_google_flatbuffers//ts:flatbuffers",
|
||||
)
|
||||
|
||||
flatbuffer_ts_library(
|
||||
name = "one_fbs",
|
||||
srcs = ["one.fbs"],
|
||||
)
|
||||
|
||||
flatbuffer_ts_library(
|
||||
name = "two_fbs",
|
||||
srcs = ["two.fbs"],
|
||||
deps = [":one_fbs"],
|
||||
)
|
||||
|
||||
js_test(
|
||||
name = "import_test",
|
||||
data = [
|
||||
"package.json",
|
||||
":node_modules/flatbuffers",
|
||||
":two_fbs",
|
||||
],
|
||||
entry_point = "import_test.js",
|
||||
)
|
||||
@@ -0,0 +1,71 @@
|
||||
workspace(name = "bazel_repository_test")
|
||||
|
||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
local_repository(
|
||||
name = "com_github_google_flatbuffers",
|
||||
path = "../../../",
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "aspect_rules_js",
|
||||
sha256 = "124ed29fb0b3d0cba5b44f8f8e07897cf61b34e35e33b1f83d1a943dfd91b193",
|
||||
strip_prefix = "rules_js-1.24.0",
|
||||
url = "https://github.com/aspect-build/rules_js/releases/download/v1.24.0/rules_js-v1.24.0.tar.gz",
|
||||
)
|
||||
|
||||
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
|
||||
|
||||
rules_js_dependencies()
|
||||
|
||||
load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock", "pnpm_repository")
|
||||
|
||||
pnpm_repository(name = "pnpm")
|
||||
|
||||
http_archive(
|
||||
name = "aspect_rules_ts",
|
||||
sha256 = "8eb25d1fdafc0836f5778d33fb8eaac37c64176481d67872b54b0a05de5be5c0",
|
||||
strip_prefix = "rules_ts-1.3.3",
|
||||
url = "https://github.com/aspect-build/rules_ts/releases/download/v1.3.3/rules_ts-v1.3.3.tar.gz",
|
||||
)
|
||||
|
||||
load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies")
|
||||
|
||||
rules_ts_dependencies(
|
||||
# curl --silent https://registry.npmjs.org/typescript/5.0.3 | jq ._integrity
|
||||
ts_integrity = "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==",
|
||||
ts_version = "5.0.3",
|
||||
)
|
||||
|
||||
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
|
||||
|
||||
nodejs_register_toolchains(
|
||||
name = "nodejs",
|
||||
node_version = DEFAULT_NODE_VERSION,
|
||||
)
|
||||
|
||||
npm_translate_lock(
|
||||
name = "npm",
|
||||
npmrc = "//:.npmrc",
|
||||
pnpm_lock = "//:pnpm-lock.yaml",
|
||||
verify_node_modules_ignored = "//:.bazelignore",
|
||||
)
|
||||
|
||||
load("@npm//:repositories.bzl", "npm_repositories")
|
||||
|
||||
npm_repositories()
|
||||
|
||||
http_archive(
|
||||
name = "aspect_rules_esbuild",
|
||||
sha256 = "2ea31bd97181a315e048be693ddc2815fddda0f3a12ca7b7cc6e91e80f31bac7",
|
||||
strip_prefix = "rules_esbuild-0.14.4",
|
||||
url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.14.4/rules_esbuild-v0.14.4.tar.gz",
|
||||
)
|
||||
|
||||
# Register a toolchain containing esbuild npm package and native bindings
|
||||
load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_VERSION", "esbuild_register_toolchains")
|
||||
|
||||
esbuild_register_toolchains(
|
||||
name = "esbuild",
|
||||
esbuild_version = LATEST_VERSION,
|
||||
)
|
||||
@@ -0,0 +1,28 @@
|
||||
import assert from 'assert'
|
||||
import * as flatbuffers from 'flatbuffers'
|
||||
|
||||
import two_cjs from './two_generated.cjs'
|
||||
|
||||
const bazel_repository_test = two_cjs.bazel_repository_test;
|
||||
|
||||
function main() {
|
||||
// Validate building a table with a table field.
|
||||
var fbb = new flatbuffers.Builder(1);
|
||||
|
||||
bazel_repository_test.One.startOne(fbb);
|
||||
bazel_repository_test.One.addInformation(fbb, 42);
|
||||
var one = bazel_repository_test.One.endOne(fbb);
|
||||
|
||||
bazel_repository_test.Two.startTwo(fbb);
|
||||
bazel_repository_test.Two.addOne(fbb, one);
|
||||
var two = bazel_repository_test.Two.endTwo(fbb);
|
||||
|
||||
fbb.finish(two);
|
||||
|
||||
// Call as a sanity check. Would be better to validate actual output here.
|
||||
fbb.asUint8Array();
|
||||
|
||||
console.log('FlatBuffers bazel repository test: completed successfully');
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace bazel_repository_test;
|
||||
|
||||
table One {
|
||||
information:int;
|
||||
}
|
||||
|
||||
root_type One;
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "bazel_repository_test",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@types/node": "18.15.11"
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: 18.15.11
|
||||
version: 18.15.11
|
||||
|
||||
packages:
|
||||
|
||||
/@types/node@18.15.11:
|
||||
resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
|
||||
dev: true
|
||||
@@ -0,0 +1,9 @@
|
||||
include 'one.fbs';
|
||||
|
||||
namespace bazel_repository_test;
|
||||
|
||||
table Two {
|
||||
one:One;
|
||||
}
|
||||
|
||||
root_type Two;
|
||||
@@ -0,0 +1 @@
|
||||
export { Abc } from './foobar/abc.js';
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export { Abc } from './foobar/abc.js';
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export { Abc } from './foobar/abc.js';
|
||||
@@ -0,0 +1,3 @@
|
||||
export declare enum Abc {
|
||||
a = 0
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export var Abc;
|
||||
(function (Abc) {
|
||||
Abc[Abc["a"] = 0] = "a";
|
||||
})(Abc || (Abc = {}));
|
||||
@@ -0,0 +1,7 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export enum Abc {
|
||||
a = 0
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export declare enum class_ {
|
||||
arguments_ = 0
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export var class_;
|
||||
(function (class_) {
|
||||
class_[class_["arguments_"] = 0] = "arguments_";
|
||||
})(class_ || (class_ = {}));
|
||||
@@ -0,0 +1,7 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export enum class_ {
|
||||
arguments_ = 0
|
||||
}
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
import { Abc } from '../foobar/abc.js';
|
||||
import { class_ } from '../foobar/class.js';
|
||||
|
||||
|
||||
export class Tab implements flatbuffers.IUnpackableObject<TabT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):Tab {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsTab(bb:flatbuffers.ByteBuffer, obj?:Tab):Tab {
|
||||
return (obj || new Tab()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsTab(bb:flatbuffers.ByteBuffer, obj?:Tab):Tab {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new Tab()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
abc():Abc {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb!.readInt32(this.bb_pos + offset) : Abc.a;
|
||||
}
|
||||
|
||||
mutate_abc(value:Abc):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt32(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
arg():class_ {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.readInt32(this.bb_pos + offset) : class_.arguments_;
|
||||
}
|
||||
|
||||
mutate_arg(value:class_):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt32(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
name():string|null
|
||||
name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null
|
||||
name(optionalEncoding?:any):string|Uint8Array|null {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 8);
|
||||
return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;
|
||||
}
|
||||
|
||||
static getFullyQualifiedName():string {
|
||||
return 'foobar.Tab';
|
||||
}
|
||||
|
||||
static startTab(builder:flatbuffers.Builder) {
|
||||
builder.startObject(3);
|
||||
}
|
||||
|
||||
static addAbc(builder:flatbuffers.Builder, abc:Abc) {
|
||||
builder.addFieldInt32(0, abc, Abc.a);
|
||||
}
|
||||
|
||||
static addArg(builder:flatbuffers.Builder, arg:class_) {
|
||||
builder.addFieldInt32(1, arg, class_.arguments_);
|
||||
}
|
||||
|
||||
static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) {
|
||||
builder.addFieldOffset(2, nameOffset, 0);
|
||||
}
|
||||
|
||||
static endTab(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createTab(builder:flatbuffers.Builder, abc:Abc, arg:class_, nameOffset:flatbuffers.Offset):flatbuffers.Offset {
|
||||
Tab.startTab(builder);
|
||||
Tab.addAbc(builder, abc);
|
||||
Tab.addArg(builder, arg);
|
||||
Tab.addName(builder, nameOffset);
|
||||
return Tab.endTab(builder);
|
||||
}
|
||||
|
||||
unpack(): TabT {
|
||||
return new TabT(
|
||||
this.abc(),
|
||||
this.arg(),
|
||||
this.name()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: TabT): void {
|
||||
_o.abc = this.abc();
|
||||
_o.arg = this.arg();
|
||||
_o.name = this.name();
|
||||
}
|
||||
}
|
||||
|
||||
export class TabT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public abc: Abc = Abc.a,
|
||||
public arg: class_ = class_.arguments_,
|
||||
public name: string|Uint8Array|null = null
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
const name = (this.name !== null ? builder.createString(this.name!) : 0);
|
||||
|
||||
return Tab.createTab(builder,
|
||||
this.abc,
|
||||
this.arg,
|
||||
name
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export { TableA, TableAT } from './table-a.js';
|
||||
export * as MyGame from './my-game.js';
|
||||
@@ -0,0 +1,4 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export { TableA, TableAT } from './table-a.js';
|
||||
export * as MyGame from './my-game.js';
|
||||
@@ -0,0 +1,6 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export { TableA, TableAT } from './table-a.js';
|
||||
export * as MyGame from './my-game.js';
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
export { InParentNamespace, InParentNamespaceT } from './my-game/in-parent-namespace.js';
|
||||
export * as Example from './my-game/example.js';
|
||||
export * as Example2 from './my-game/example2.js';
|
||||
export * as OtherNameSpace from './my-game/other-name-space.js';
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export { InParentNamespace, InParentNamespaceT } from './my-game/in-parent-namespace.js';
|
||||
export * as Example from './my-game/example.js';
|
||||
export * as Example2 from './my-game/example2.js';
|
||||
export * as OtherNameSpace from './my-game/other-name-space.js';
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export { InParentNamespace, InParentNamespaceT } from './my-game/in-parent-namespace.js';
|
||||
export * as Example from './my-game/example.js';
|
||||
export * as Example2 from './my-game/example2.js';
|
||||
export * as OtherNameSpace from './my-game/other-name-space.js';
|
||||
@@ -0,0 +1,16 @@
|
||||
export { Ability, AbilityT } from './example/ability.js';
|
||||
export { Any } from './example/any.js';
|
||||
export { AnyAmbiguousAliases } from './example/any-ambiguous-aliases.js';
|
||||
export { AnyUniqueAliases } from './example/any-unique-aliases.js';
|
||||
export { Color } from './example/color.js';
|
||||
export { LongEnum } from './example/long-enum.js';
|
||||
export { Monster, MonsterT } from './example/monster.js';
|
||||
export { Race } from './example/race.js';
|
||||
export { Referrable, ReferrableT } from './example/referrable.js';
|
||||
export { Stat, StatT } from './example/stat.js';
|
||||
export { StructOfStructs, StructOfStructsT } from './example/struct-of-structs.js';
|
||||
export { StructOfStructsOfStructs, StructOfStructsOfStructsT } from './example/struct-of-structs-of-structs.js';
|
||||
export { Test, TestT } from './example/test.js';
|
||||
export { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from './example/test-simple-table-with-enum.js';
|
||||
export { TypeAliases, TypeAliasesT } from './example/type-aliases.js';
|
||||
export { Vec3, Vec3T } from './example/vec3.js';
|
||||
@@ -0,0 +1,18 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export { Ability, AbilityT } from './example/ability.js';
|
||||
export { Any } from './example/any.js';
|
||||
export { AnyAmbiguousAliases } from './example/any-ambiguous-aliases.js';
|
||||
export { AnyUniqueAliases } from './example/any-unique-aliases.js';
|
||||
export { Color } from './example/color.js';
|
||||
export { LongEnum } from './example/long-enum.js';
|
||||
export { Monster, MonsterT } from './example/monster.js';
|
||||
export { Race } from './example/race.js';
|
||||
export { Referrable, ReferrableT } from './example/referrable.js';
|
||||
export { Stat, StatT } from './example/stat.js';
|
||||
export { StructOfStructs, StructOfStructsT } from './example/struct-of-structs.js';
|
||||
export { StructOfStructsOfStructs, StructOfStructsOfStructsT } from './example/struct-of-structs-of-structs.js';
|
||||
export { Test, TestT } from './example/test.js';
|
||||
export { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from './example/test-simple-table-with-enum.js';
|
||||
export { TypeAliases, TypeAliasesT } from './example/type-aliases.js';
|
||||
export { Vec3, Vec3T } from './example/vec3.js';
|
||||
@@ -0,0 +1,20 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export { Ability, AbilityT } from './example/ability.js';
|
||||
export { Any } from './example/any.js';
|
||||
export { AnyAmbiguousAliases } from './example/any-ambiguous-aliases.js';
|
||||
export { AnyUniqueAliases } from './example/any-unique-aliases.js';
|
||||
export { Color } from './example/color.js';
|
||||
export { LongEnum } from './example/long-enum.js';
|
||||
export { Monster, MonsterT } from './example/monster.js';
|
||||
export { Race } from './example/race.js';
|
||||
export { Referrable, ReferrableT } from './example/referrable.js';
|
||||
export { Stat, StatT } from './example/stat.js';
|
||||
export { StructOfStructs, StructOfStructsT } from './example/struct-of-structs.js';
|
||||
export { StructOfStructsOfStructs, StructOfStructsOfStructsT } from './example/struct-of-structs-of-structs.js';
|
||||
export { Test, TestT } from './example/test.js';
|
||||
export { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from './example/test-simple-table-with-enum.js';
|
||||
export { TypeAliases, TypeAliasesT } from './example/type-aliases.js';
|
||||
export { Vec3, Vec3T } from './example/vec3.js';
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
export declare class Ability implements flatbuffers.IUnpackableObject<AbilityT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): Ability;
|
||||
id(): number;
|
||||
mutate_id(value: number): boolean;
|
||||
distance(): number;
|
||||
mutate_distance(value: number): boolean;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
static createAbility(builder: flatbuffers.Builder, id: number, distance: number): flatbuffers.Offset;
|
||||
unpack(): AbilityT;
|
||||
unpackTo(_o: AbilityT): void;
|
||||
}
|
||||
export declare class AbilityT implements flatbuffers.IGeneratedObject {
|
||||
id: number;
|
||||
distance: number;
|
||||
constructor(id?: number, distance?: number);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
export class Ability {
|
||||
constructor() {
|
||||
this.bb = null;
|
||||
this.bb_pos = 0;
|
||||
}
|
||||
__init(i, bb) {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
id() {
|
||||
return this.bb.readUint32(this.bb_pos);
|
||||
}
|
||||
mutate_id(value) {
|
||||
this.bb.writeUint32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
}
|
||||
distance() {
|
||||
return this.bb.readUint32(this.bb_pos + 4);
|
||||
}
|
||||
mutate_distance(value) {
|
||||
this.bb.writeUint32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
}
|
||||
static getFullyQualifiedName() {
|
||||
return 'MyGame.Example.Ability';
|
||||
}
|
||||
static sizeOf() {
|
||||
return 8;
|
||||
}
|
||||
static createAbility(builder, id, distance) {
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(distance);
|
||||
builder.writeInt32(id);
|
||||
return builder.offset();
|
||||
}
|
||||
unpack() {
|
||||
return new AbilityT(this.id(), this.distance());
|
||||
}
|
||||
unpackTo(_o) {
|
||||
_o.id = this.id();
|
||||
_o.distance = this.distance();
|
||||
}
|
||||
}
|
||||
export class AbilityT {
|
||||
constructor(id = 0, distance = 0) {
|
||||
this.id = id;
|
||||
this.distance = distance;
|
||||
}
|
||||
pack(builder) {
|
||||
return Ability.createAbility(builder, this.id, this.distance);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class Ability implements flatbuffers.IUnpackableObject<AbilityT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):Ability {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
id():number {
|
||||
return this.bb!.readUint32(this.bb_pos);
|
||||
}
|
||||
|
||||
mutate_id(value:number):boolean {
|
||||
this.bb!.writeUint32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
distance():number {
|
||||
return this.bb!.readUint32(this.bb_pos + 4);
|
||||
}
|
||||
|
||||
mutate_distance(value:number):boolean {
|
||||
this.bb!.writeUint32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
static getFullyQualifiedName():string {
|
||||
return 'MyGame.Example.Ability';
|
||||
}
|
||||
|
||||
static sizeOf():number {
|
||||
return 8;
|
||||
}
|
||||
|
||||
static createAbility(builder:flatbuffers.Builder, id: number, distance: number):flatbuffers.Offset {
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(distance);
|
||||
builder.writeInt32(id);
|
||||
return builder.offset();
|
||||
}
|
||||
|
||||
|
||||
unpack(): AbilityT {
|
||||
return new AbilityT(
|
||||
this.id(),
|
||||
this.distance()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: AbilityT): void {
|
||||
_o.id = this.id();
|
||||
_o.distance = this.distance();
|
||||
}
|
||||
}
|
||||
|
||||
export class AbilityT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public id: number = 0,
|
||||
public distance: number = 0
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
return Ability.createAbility(builder,
|
||||
this.id,
|
||||
this.distance
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Monster } from '../../my-game/example/monster.js';
|
||||
export declare enum AnyAmbiguousAliases {
|
||||
NONE = 0,
|
||||
M1 = 1,
|
||||
M2 = 2,
|
||||
M3 = 3
|
||||
}
|
||||
export declare function unionToAnyAmbiguousAliases(type: AnyAmbiguousAliases, accessor: (obj: Monster) => Monster | null): Monster | null;
|
||||
export declare function unionListToAnyAmbiguousAliases(type: AnyAmbiguousAliases, accessor: (index: number, obj: Monster) => Monster | null, index: number): Monster | null;
|
||||
@@ -0,0 +1,28 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
import { Monster } from '../../my-game/example/monster.js';
|
||||
export var AnyAmbiguousAliases;
|
||||
(function (AnyAmbiguousAliases) {
|
||||
AnyAmbiguousAliases[AnyAmbiguousAliases["NONE"] = 0] = "NONE";
|
||||
AnyAmbiguousAliases[AnyAmbiguousAliases["M1"] = 1] = "M1";
|
||||
AnyAmbiguousAliases[AnyAmbiguousAliases["M2"] = 2] = "M2";
|
||||
AnyAmbiguousAliases[AnyAmbiguousAliases["M3"] = 3] = "M3";
|
||||
})(AnyAmbiguousAliases || (AnyAmbiguousAliases = {}));
|
||||
export function unionToAnyAmbiguousAliases(type, accessor) {
|
||||
switch (AnyAmbiguousAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M1': return accessor(new Monster());
|
||||
case 'M2': return accessor(new Monster());
|
||||
case 'M3': return accessor(new Monster());
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
export function unionListToAnyAmbiguousAliases(type, accessor, index) {
|
||||
switch (AnyAmbiguousAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M1': return accessor(index, new Monster());
|
||||
case 'M2': return accessor(index, new Monster());
|
||||
case 'M3': return accessor(index, new Monster());
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import { Monster, MonsterT } from '../../my-game/example/monster.js';
|
||||
|
||||
|
||||
export enum AnyAmbiguousAliases {
|
||||
NONE = 0,
|
||||
M1 = 1,
|
||||
M2 = 2,
|
||||
M3 = 3
|
||||
}
|
||||
|
||||
export function unionToAnyAmbiguousAliases(
|
||||
type: AnyAmbiguousAliases,
|
||||
accessor: (obj:Monster) => Monster|null
|
||||
): Monster|null {
|
||||
switch(AnyAmbiguousAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M1': return accessor(new Monster())! as Monster;
|
||||
case 'M2': return accessor(new Monster())! as Monster;
|
||||
case 'M3': return accessor(new Monster())! as Monster;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function unionListToAnyAmbiguousAliases(
|
||||
type: AnyAmbiguousAliases,
|
||||
accessor: (index: number, obj:Monster) => Monster|null,
|
||||
index: number
|
||||
): Monster|null {
|
||||
switch(AnyAmbiguousAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M1': return accessor(index, new Monster())! as Monster;
|
||||
case 'M2': return accessor(index, new Monster())! as Monster;
|
||||
case 'M3': return accessor(index, new Monster())! as Monster;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Monster as MyGame_Example2_Monster } from '../../my-game/example2/monster.js';
|
||||
import { Monster } from '../../my-game/example/monster.js';
|
||||
import { TestSimpleTableWithEnum } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
export declare enum AnyUniqueAliases {
|
||||
NONE = 0,
|
||||
M = 1,
|
||||
TS = 2,
|
||||
M2 = 3
|
||||
}
|
||||
export declare function unionToAnyUniqueAliases(type: AnyUniqueAliases, accessor: (obj: Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum) => Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null): Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null;
|
||||
export declare function unionListToAnyUniqueAliases(type: AnyUniqueAliases, accessor: (index: number, obj: Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum) => Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null, index: number): Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null;
|
||||
@@ -0,0 +1,30 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
import { Monster as MyGame_Example2_Monster } from '../../my-game/example2/monster.js';
|
||||
import { Monster } from '../../my-game/example/monster.js';
|
||||
import { TestSimpleTableWithEnum } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
export var AnyUniqueAliases;
|
||||
(function (AnyUniqueAliases) {
|
||||
AnyUniqueAliases[AnyUniqueAliases["NONE"] = 0] = "NONE";
|
||||
AnyUniqueAliases[AnyUniqueAliases["M"] = 1] = "M";
|
||||
AnyUniqueAliases[AnyUniqueAliases["TS"] = 2] = "TS";
|
||||
AnyUniqueAliases[AnyUniqueAliases["M2"] = 3] = "M2";
|
||||
})(AnyUniqueAliases || (AnyUniqueAliases = {}));
|
||||
export function unionToAnyUniqueAliases(type, accessor) {
|
||||
switch (AnyUniqueAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M': return accessor(new Monster());
|
||||
case 'TS': return accessor(new TestSimpleTableWithEnum());
|
||||
case 'M2': return accessor(new MyGame_Example2_Monster());
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
export function unionListToAnyUniqueAliases(type, accessor, index) {
|
||||
switch (AnyUniqueAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M': return accessor(index, new Monster());
|
||||
case 'TS': return accessor(index, new TestSimpleTableWithEnum());
|
||||
case 'M2': return accessor(index, new MyGame_Example2_Monster());
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import { Monster as MyGame_Example2_Monster, MonsterT as MyGame_Example2_MonsterT } from '../../my-game/example2/monster.js';
|
||||
import { Monster, MonsterT } from '../../my-game/example/monster.js';
|
||||
import { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
|
||||
|
||||
export enum AnyUniqueAliases {
|
||||
NONE = 0,
|
||||
M = 1,
|
||||
TS = 2,
|
||||
M2 = 3
|
||||
}
|
||||
|
||||
export function unionToAnyUniqueAliases(
|
||||
type: AnyUniqueAliases,
|
||||
accessor: (obj:Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum) => Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null
|
||||
): Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null {
|
||||
switch(AnyUniqueAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M': return accessor(new Monster())! as Monster;
|
||||
case 'TS': return accessor(new TestSimpleTableWithEnum())! as TestSimpleTableWithEnum;
|
||||
case 'M2': return accessor(new MyGame_Example2_Monster())! as MyGame_Example2_Monster;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function unionListToAnyUniqueAliases(
|
||||
type: AnyUniqueAliases,
|
||||
accessor: (index: number, obj:Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum) => Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null,
|
||||
index: number
|
||||
): Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null {
|
||||
switch(AnyUniqueAliases[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'M': return accessor(index, new Monster())! as Monster;
|
||||
case 'TS': return accessor(index, new TestSimpleTableWithEnum())! as TestSimpleTableWithEnum;
|
||||
case 'M2': return accessor(index, new MyGame_Example2_Monster())! as MyGame_Example2_Monster;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Monster as MyGame_Example2_Monster } from '../../my-game/example2/monster.js';
|
||||
import { Monster } from '../../my-game/example/monster.js';
|
||||
import { TestSimpleTableWithEnum } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
export declare enum Any {
|
||||
NONE = 0,
|
||||
Monster = 1,
|
||||
TestSimpleTableWithEnum = 2,
|
||||
MyGame_Example2_Monster = 3
|
||||
}
|
||||
export declare function unionToAny(type: Any, accessor: (obj: Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum) => Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null): Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null;
|
||||
export declare function unionListToAny(type: Any, accessor: (index: number, obj: Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum) => Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null, index: number): Monster | MyGame_Example2_Monster | TestSimpleTableWithEnum | null;
|
||||
@@ -0,0 +1,30 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
import { Monster as MyGame_Example2_Monster } from '../../my-game/example2/monster.js';
|
||||
import { Monster } from '../../my-game/example/monster.js';
|
||||
import { TestSimpleTableWithEnum } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
export var Any;
|
||||
(function (Any) {
|
||||
Any[Any["NONE"] = 0] = "NONE";
|
||||
Any[Any["Monster"] = 1] = "Monster";
|
||||
Any[Any["TestSimpleTableWithEnum"] = 2] = "TestSimpleTableWithEnum";
|
||||
Any[Any["MyGame_Example2_Monster"] = 3] = "MyGame_Example2_Monster";
|
||||
})(Any || (Any = {}));
|
||||
export function unionToAny(type, accessor) {
|
||||
switch (Any[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'Monster': return accessor(new Monster());
|
||||
case 'TestSimpleTableWithEnum': return accessor(new TestSimpleTableWithEnum());
|
||||
case 'MyGame_Example2_Monster': return accessor(new MyGame_Example2_Monster());
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
export function unionListToAny(type, accessor, index) {
|
||||
switch (Any[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'Monster': return accessor(index, new Monster());
|
||||
case 'TestSimpleTableWithEnum': return accessor(index, new TestSimpleTableWithEnum());
|
||||
case 'MyGame_Example2_Monster': return accessor(index, new MyGame_Example2_Monster());
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import { Monster as MyGame_Example2_Monster, MonsterT as MyGame_Example2_MonsterT } from '../../my-game/example2/monster.js';
|
||||
import { Monster, MonsterT } from '../../my-game/example/monster.js';
|
||||
import { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
|
||||
|
||||
export enum Any {
|
||||
NONE = 0,
|
||||
Monster = 1,
|
||||
TestSimpleTableWithEnum = 2,
|
||||
MyGame_Example2_Monster = 3
|
||||
}
|
||||
|
||||
export function unionToAny(
|
||||
type: Any,
|
||||
accessor: (obj:Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum) => Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null
|
||||
): Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null {
|
||||
switch(Any[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'Monster': return accessor(new Monster())! as Monster;
|
||||
case 'TestSimpleTableWithEnum': return accessor(new TestSimpleTableWithEnum())! as TestSimpleTableWithEnum;
|
||||
case 'MyGame_Example2_Monster': return accessor(new MyGame_Example2_Monster())! as MyGame_Example2_Monster;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function unionListToAny(
|
||||
type: Any,
|
||||
accessor: (index: number, obj:Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum) => Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null,
|
||||
index: number
|
||||
): Monster|MyGame_Example2_Monster|TestSimpleTableWithEnum|null {
|
||||
switch(Any[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'Monster': return accessor(index, new Monster())! as Monster;
|
||||
case 'TestSimpleTableWithEnum': return accessor(index, new TestSimpleTableWithEnum())! as TestSimpleTableWithEnum;
|
||||
case 'MyGame_Example2_Monster': return accessor(index, new MyGame_Example2_Monster())! as MyGame_Example2_Monster;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Composite components of Monster color.
|
||||
*/
|
||||
export declare enum Color {
|
||||
Red = 1,
|
||||
/**
|
||||
* \brief color Green
|
||||
* Green is bit_flag with value (1u << 1)
|
||||
*/
|
||||
Green = 2,
|
||||
/**
|
||||
* \brief color Blue (1u << 3)
|
||||
*/
|
||||
Blue = 8
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
/**
|
||||
* Composite components of Monster color.
|
||||
*/
|
||||
export var Color;
|
||||
(function (Color) {
|
||||
Color[Color["Red"] = 1] = "Red";
|
||||
/**
|
||||
* \brief color Green
|
||||
* Green is bit_flag with value (1u << 1)
|
||||
*/
|
||||
Color[Color["Green"] = 2] = "Green";
|
||||
/**
|
||||
* \brief color Blue (1u << 3)
|
||||
*/
|
||||
Color[Color["Blue"] = 8] = "Blue";
|
||||
})(Color || (Color = {}));
|
||||
@@ -0,0 +1,21 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
/**
|
||||
* Composite components of Monster color.
|
||||
*/
|
||||
export enum Color {
|
||||
Red = 1,
|
||||
|
||||
/**
|
||||
* \brief color Green
|
||||
* Green is bit_flag with value (1u << 1)
|
||||
*/
|
||||
Green = 2,
|
||||
|
||||
/**
|
||||
* \brief color Blue (1u << 3)
|
||||
*/
|
||||
Blue = 8
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export declare enum LongEnum {
|
||||
LongOne = "2",
|
||||
LongTwo = "4",
|
||||
LongBig = "1099511627776"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export var LongEnum;
|
||||
(function (LongEnum) {
|
||||
LongEnum["LongOne"] = "2";
|
||||
LongEnum["LongTwo"] = "4";
|
||||
LongEnum["LongBig"] = "1099511627776";
|
||||
})(LongEnum || (LongEnum = {}));
|
||||
@@ -0,0 +1,9 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export enum LongEnum {
|
||||
LongOne = '2',
|
||||
LongTwo = '4',
|
||||
LongBig = '1099511627776'
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { MonsterT as MyGame_Example2_MonsterT } from '../../my-game/example2/monster.js';
|
||||
import { Ability, AbilityT } from '../../my-game/example/ability.js';
|
||||
import { Any } from '../../my-game/example/any.js';
|
||||
import { AnyAmbiguousAliases } from '../../my-game/example/any-ambiguous-aliases.js';
|
||||
import { AnyUniqueAliases } from '../../my-game/example/any-unique-aliases.js';
|
||||
import { Color } from '../../my-game/example/color.js';
|
||||
import { Race } from '../../my-game/example/race.js';
|
||||
import { Referrable, ReferrableT } from '../../my-game/example/referrable.js';
|
||||
import { Stat, StatT } from '../../my-game/example/stat.js';
|
||||
import { Test, TestT } from '../../my-game/example/test.js';
|
||||
import { TestSimpleTableWithEnumT } from '../../my-game/example/test-simple-table-with-enum.js';
|
||||
import { Vec3, Vec3T } from '../../my-game/example/vec3.js';
|
||||
import { InParentNamespace, InParentNamespaceT } from '../../my-game/in-parent-namespace.js';
|
||||
/**
|
||||
* an example documentation comment: "monster object"
|
||||
*/
|
||||
export declare class Monster implements flatbuffers.IUnpackableObject<MonsterT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): Monster;
|
||||
static getRootAsMonster(bb: flatbuffers.ByteBuffer, obj?: Monster): Monster;
|
||||
static getSizePrefixedRootAsMonster(bb: flatbuffers.ByteBuffer, obj?: Monster): Monster;
|
||||
static bufferHasIdentifier(bb: flatbuffers.ByteBuffer): boolean;
|
||||
pos(obj?: Vec3): Vec3 | null;
|
||||
mana(): number;
|
||||
mutate_mana(value: number): boolean;
|
||||
hp(): number;
|
||||
mutate_hp(value: number): boolean;
|
||||
name(): string | null;
|
||||
name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
|
||||
inventory(index: number): number | null;
|
||||
inventoryLength(): number;
|
||||
inventoryArray(): Uint8Array | null;
|
||||
color(): Color;
|
||||
mutate_color(value: Color): boolean;
|
||||
testType(): Any;
|
||||
test<T extends flatbuffers.Table>(obj: any): any | null;
|
||||
test4(index: number, obj?: Test): Test | null;
|
||||
test4Length(): number;
|
||||
testarrayofstring(index: number): string;
|
||||
testarrayofstring(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array;
|
||||
testarrayofstringLength(): number;
|
||||
/**
|
||||
* an example documentation comment: this will end up in the generated code
|
||||
* multiline too
|
||||
*/
|
||||
testarrayoftables(index: number, obj?: Monster): Monster | null;
|
||||
testarrayoftablesLength(): number;
|
||||
enemy(obj?: Monster): Monster | null;
|
||||
testnestedflatbuffer(index: number): number | null;
|
||||
testnestedflatbufferLength(): number;
|
||||
testnestedflatbufferArray(): Uint8Array | null;
|
||||
testempty(obj?: Stat): Stat | null;
|
||||
testbool(): boolean;
|
||||
mutate_testbool(value: boolean): boolean;
|
||||
testhashs32Fnv1(): number;
|
||||
mutate_testhashs32_fnv1(value: number): boolean;
|
||||
testhashu32Fnv1(): number;
|
||||
mutate_testhashu32_fnv1(value: number): boolean;
|
||||
testhashs64Fnv1(): bigint;
|
||||
mutate_testhashs64_fnv1(value: bigint): boolean;
|
||||
testhashu64Fnv1(): bigint;
|
||||
mutate_testhashu64_fnv1(value: bigint): boolean;
|
||||
testhashs32Fnv1a(): number;
|
||||
mutate_testhashs32_fnv1a(value: number): boolean;
|
||||
testhashu32Fnv1a(): number;
|
||||
mutate_testhashu32_fnv1a(value: number): boolean;
|
||||
testhashs64Fnv1a(): bigint;
|
||||
mutate_testhashs64_fnv1a(value: bigint): boolean;
|
||||
testhashu64Fnv1a(): bigint;
|
||||
mutate_testhashu64_fnv1a(value: bigint): boolean;
|
||||
testarrayofbools(index: number): boolean | null;
|
||||
testarrayofboolsLength(): number;
|
||||
testarrayofboolsArray(): Int8Array | null;
|
||||
testf(): number;
|
||||
mutate_testf(value: number): boolean;
|
||||
testf2(): number;
|
||||
mutate_testf2(value: number): boolean;
|
||||
testf3(): number;
|
||||
mutate_testf3(value: number): boolean;
|
||||
testarrayofstring2(index: number): string;
|
||||
testarrayofstring2(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array;
|
||||
testarrayofstring2Length(): number;
|
||||
testarrayofsortedstruct(index: number, obj?: Ability): Ability | null;
|
||||
testarrayofsortedstructLength(): number;
|
||||
flex(index: number): number | null;
|
||||
flexLength(): number;
|
||||
flexArray(): Uint8Array | null;
|
||||
test5(index: number, obj?: Test): Test | null;
|
||||
test5Length(): number;
|
||||
vectorOfLongs(index: number): bigint | null;
|
||||
vectorOfLongsLength(): number;
|
||||
vectorOfDoubles(index: number): number | null;
|
||||
vectorOfDoublesLength(): number;
|
||||
vectorOfDoublesArray(): Float64Array | null;
|
||||
parentNamespaceTest(obj?: InParentNamespace): InParentNamespace | null;
|
||||
vectorOfReferrables(index: number, obj?: Referrable): Referrable | null;
|
||||
vectorOfReferrablesLength(): number;
|
||||
singleWeakReference(): bigint;
|
||||
mutate_single_weak_reference(value: bigint): boolean;
|
||||
vectorOfWeakReferences(index: number): bigint | null;
|
||||
vectorOfWeakReferencesLength(): number;
|
||||
vectorOfStrongReferrables(index: number, obj?: Referrable): Referrable | null;
|
||||
vectorOfStrongReferrablesLength(): number;
|
||||
coOwningReference(): bigint;
|
||||
mutate_co_owning_reference(value: bigint): boolean;
|
||||
vectorOfCoOwningReferences(index: number): bigint | null;
|
||||
vectorOfCoOwningReferencesLength(): number;
|
||||
nonOwningReference(): bigint;
|
||||
mutate_non_owning_reference(value: bigint): boolean;
|
||||
vectorOfNonOwningReferences(index: number): bigint | null;
|
||||
vectorOfNonOwningReferencesLength(): number;
|
||||
anyUniqueType(): AnyUniqueAliases;
|
||||
anyUnique<T extends flatbuffers.Table>(obj: any): any | null;
|
||||
anyAmbiguousType(): AnyAmbiguousAliases;
|
||||
anyAmbiguous<T extends flatbuffers.Table>(obj: any): any | null;
|
||||
vectorOfEnums(index: number): Color | null;
|
||||
vectorOfEnumsLength(): number;
|
||||
vectorOfEnumsArray(): Uint8Array | null;
|
||||
signedEnum(): Race;
|
||||
mutate_signed_enum(value: Race): boolean;
|
||||
testrequirednestedflatbuffer(index: number): number | null;
|
||||
testrequirednestedflatbufferLength(): number;
|
||||
testrequirednestedflatbufferArray(): Uint8Array | null;
|
||||
scalarKeySortedTables(index: number, obj?: Stat): Stat | null;
|
||||
scalarKeySortedTablesLength(): number;
|
||||
nativeInline(obj?: Test): Test | null;
|
||||
longEnumNonEnumDefault(): bigint;
|
||||
mutate_long_enum_non_enum_default(value: bigint): boolean;
|
||||
longEnumNormalDefault(): bigint;
|
||||
mutate_long_enum_normal_default(value: bigint): boolean;
|
||||
nanDefault(): number;
|
||||
mutate_nan_default(value: number): boolean;
|
||||
infDefault(): number;
|
||||
mutate_inf_default(value: number): boolean;
|
||||
positiveInfDefault(): number;
|
||||
mutate_positive_inf_default(value: number): boolean;
|
||||
infinityDefault(): number;
|
||||
mutate_infinity_default(value: number): boolean;
|
||||
positiveInfinityDefault(): number;
|
||||
mutate_positive_infinity_default(value: number): boolean;
|
||||
negativeInfDefault(): number;
|
||||
mutate_negative_inf_default(value: number): boolean;
|
||||
negativeInfinityDefault(): number;
|
||||
mutate_negative_infinity_default(value: number): boolean;
|
||||
doubleInfDefault(): number;
|
||||
mutate_double_inf_default(value: number): boolean;
|
||||
static getFullyQualifiedName(): string;
|
||||
static startMonster(builder: flatbuffers.Builder): void;
|
||||
static addPos(builder: flatbuffers.Builder, posOffset: flatbuffers.Offset): void;
|
||||
static addMana(builder: flatbuffers.Builder, mana: number): void;
|
||||
static addHp(builder: flatbuffers.Builder, hp: number): void;
|
||||
static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void;
|
||||
static addInventory(builder: flatbuffers.Builder, inventoryOffset: flatbuffers.Offset): void;
|
||||
static createInventoryVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
|
||||
static startInventoryVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addColor(builder: flatbuffers.Builder, color: Color): void;
|
||||
static addTestType(builder: flatbuffers.Builder, testType: Any): void;
|
||||
static addTest(builder: flatbuffers.Builder, testOffset: flatbuffers.Offset): void;
|
||||
static addTest4(builder: flatbuffers.Builder, test4Offset: flatbuffers.Offset): void;
|
||||
static startTest4Vector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addTestarrayofstring(builder: flatbuffers.Builder, testarrayofstringOffset: flatbuffers.Offset): void;
|
||||
static createTestarrayofstringVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
||||
static startTestarrayofstringVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addTestarrayoftables(builder: flatbuffers.Builder, testarrayoftablesOffset: flatbuffers.Offset): void;
|
||||
static createTestarrayoftablesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
||||
static startTestarrayoftablesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addEnemy(builder: flatbuffers.Builder, enemyOffset: flatbuffers.Offset): void;
|
||||
static addTestnestedflatbuffer(builder: flatbuffers.Builder, testnestedflatbufferOffset: flatbuffers.Offset): void;
|
||||
static createTestnestedflatbufferVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
|
||||
static startTestnestedflatbufferVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addTestempty(builder: flatbuffers.Builder, testemptyOffset: flatbuffers.Offset): void;
|
||||
static addTestbool(builder: flatbuffers.Builder, testbool: boolean): void;
|
||||
static addTesthashs32Fnv1(builder: flatbuffers.Builder, testhashs32Fnv1: number): void;
|
||||
static addTesthashu32Fnv1(builder: flatbuffers.Builder, testhashu32Fnv1: number): void;
|
||||
static addTesthashs64Fnv1(builder: flatbuffers.Builder, testhashs64Fnv1: bigint): void;
|
||||
static addTesthashu64Fnv1(builder: flatbuffers.Builder, testhashu64Fnv1: bigint): void;
|
||||
static addTesthashs32Fnv1a(builder: flatbuffers.Builder, testhashs32Fnv1a: number): void;
|
||||
static addTesthashu32Fnv1a(builder: flatbuffers.Builder, testhashu32Fnv1a: number): void;
|
||||
static addTesthashs64Fnv1a(builder: flatbuffers.Builder, testhashs64Fnv1a: bigint): void;
|
||||
static addTesthashu64Fnv1a(builder: flatbuffers.Builder, testhashu64Fnv1a: bigint): void;
|
||||
static addTestarrayofbools(builder: flatbuffers.Builder, testarrayofboolsOffset: flatbuffers.Offset): void;
|
||||
static createTestarrayofboolsVector(builder: flatbuffers.Builder, data: boolean[]): flatbuffers.Offset;
|
||||
static startTestarrayofboolsVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addTestf(builder: flatbuffers.Builder, testf: number): void;
|
||||
static addTestf2(builder: flatbuffers.Builder, testf2: number): void;
|
||||
static addTestf3(builder: flatbuffers.Builder, testf3: number): void;
|
||||
static addTestarrayofstring2(builder: flatbuffers.Builder, testarrayofstring2Offset: flatbuffers.Offset): void;
|
||||
static createTestarrayofstring2Vector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
||||
static startTestarrayofstring2Vector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addTestarrayofsortedstruct(builder: flatbuffers.Builder, testarrayofsortedstructOffset: flatbuffers.Offset): void;
|
||||
static startTestarrayofsortedstructVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addFlex(builder: flatbuffers.Builder, flexOffset: flatbuffers.Offset): void;
|
||||
static createFlexVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
|
||||
static startFlexVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addTest5(builder: flatbuffers.Builder, test5Offset: flatbuffers.Offset): void;
|
||||
static startTest5Vector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addVectorOfLongs(builder: flatbuffers.Builder, vectorOfLongsOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfLongsVector(builder: flatbuffers.Builder, data: bigint[]): flatbuffers.Offset;
|
||||
static startVectorOfLongsVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addVectorOfDoubles(builder: flatbuffers.Builder, vectorOfDoublesOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfDoublesVector(builder: flatbuffers.Builder, data: number[] | Float64Array): flatbuffers.Offset;
|
||||
/**
|
||||
* @deprecated This Uint8Array overload will be removed in the future.
|
||||
*/
|
||||
static createVectorOfDoublesVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
|
||||
static startVectorOfDoublesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addParentNamespaceTest(builder: flatbuffers.Builder, parentNamespaceTestOffset: flatbuffers.Offset): void;
|
||||
static addVectorOfReferrables(builder: flatbuffers.Builder, vectorOfReferrablesOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfReferrablesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
||||
static startVectorOfReferrablesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addSingleWeakReference(builder: flatbuffers.Builder, singleWeakReference: bigint): void;
|
||||
static addVectorOfWeakReferences(builder: flatbuffers.Builder, vectorOfWeakReferencesOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfWeakReferencesVector(builder: flatbuffers.Builder, data: bigint[]): flatbuffers.Offset;
|
||||
static startVectorOfWeakReferencesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addVectorOfStrongReferrables(builder: flatbuffers.Builder, vectorOfStrongReferrablesOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfStrongReferrablesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
||||
static startVectorOfStrongReferrablesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addCoOwningReference(builder: flatbuffers.Builder, coOwningReference: bigint): void;
|
||||
static addVectorOfCoOwningReferences(builder: flatbuffers.Builder, vectorOfCoOwningReferencesOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfCoOwningReferencesVector(builder: flatbuffers.Builder, data: bigint[]): flatbuffers.Offset;
|
||||
static startVectorOfCoOwningReferencesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addNonOwningReference(builder: flatbuffers.Builder, nonOwningReference: bigint): void;
|
||||
static addVectorOfNonOwningReferences(builder: flatbuffers.Builder, vectorOfNonOwningReferencesOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfNonOwningReferencesVector(builder: flatbuffers.Builder, data: bigint[]): flatbuffers.Offset;
|
||||
static startVectorOfNonOwningReferencesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addAnyUniqueType(builder: flatbuffers.Builder, anyUniqueType: AnyUniqueAliases): void;
|
||||
static addAnyUnique(builder: flatbuffers.Builder, anyUniqueOffset: flatbuffers.Offset): void;
|
||||
static addAnyAmbiguousType(builder: flatbuffers.Builder, anyAmbiguousType: AnyAmbiguousAliases): void;
|
||||
static addAnyAmbiguous(builder: flatbuffers.Builder, anyAmbiguousOffset: flatbuffers.Offset): void;
|
||||
static addVectorOfEnums(builder: flatbuffers.Builder, vectorOfEnumsOffset: flatbuffers.Offset): void;
|
||||
static createVectorOfEnumsVector(builder: flatbuffers.Builder, data: Color[]): flatbuffers.Offset;
|
||||
static startVectorOfEnumsVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addSignedEnum(builder: flatbuffers.Builder, signedEnum: Race): void;
|
||||
static addTestrequirednestedflatbuffer(builder: flatbuffers.Builder, testrequirednestedflatbufferOffset: flatbuffers.Offset): void;
|
||||
static createTestrequirednestedflatbufferVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
|
||||
static startTestrequirednestedflatbufferVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addScalarKeySortedTables(builder: flatbuffers.Builder, scalarKeySortedTablesOffset: flatbuffers.Offset): void;
|
||||
static createScalarKeySortedTablesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
||||
static startScalarKeySortedTablesVector(builder: flatbuffers.Builder, numElems: number): void;
|
||||
static addNativeInline(builder: flatbuffers.Builder, nativeInlineOffset: flatbuffers.Offset): void;
|
||||
static addLongEnumNonEnumDefault(builder: flatbuffers.Builder, longEnumNonEnumDefault: bigint): void;
|
||||
static addLongEnumNormalDefault(builder: flatbuffers.Builder, longEnumNormalDefault: bigint): void;
|
||||
static addNanDefault(builder: flatbuffers.Builder, nanDefault: number): void;
|
||||
static addInfDefault(builder: flatbuffers.Builder, infDefault: number): void;
|
||||
static addPositiveInfDefault(builder: flatbuffers.Builder, positiveInfDefault: number): void;
|
||||
static addInfinityDefault(builder: flatbuffers.Builder, infinityDefault: number): void;
|
||||
static addPositiveInfinityDefault(builder: flatbuffers.Builder, positiveInfinityDefault: number): void;
|
||||
static addNegativeInfDefault(builder: flatbuffers.Builder, negativeInfDefault: number): void;
|
||||
static addNegativeInfinityDefault(builder: flatbuffers.Builder, negativeInfinityDefault: number): void;
|
||||
static addDoubleInfDefault(builder: flatbuffers.Builder, doubleInfDefault: number): void;
|
||||
static endMonster(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
static finishMonsterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
|
||||
static finishSizePrefixedMonsterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
|
||||
serialize(): Uint8Array;
|
||||
static deserialize(buffer: Uint8Array): Monster;
|
||||
unpack(): MonsterT;
|
||||
unpackTo(_o: MonsterT): void;
|
||||
}
|
||||
export declare class MonsterT implements flatbuffers.IGeneratedObject {
|
||||
pos: Vec3T | null;
|
||||
mana: number;
|
||||
hp: number;
|
||||
name: string | Uint8Array | null;
|
||||
inventory: (number)[];
|
||||
color: Color;
|
||||
testType: Any;
|
||||
test: MonsterT | MyGame_Example2_MonsterT | TestSimpleTableWithEnumT | null;
|
||||
test4: (TestT)[];
|
||||
testarrayofstring: (string)[];
|
||||
testarrayoftables: (MonsterT)[];
|
||||
enemy: MonsterT | null;
|
||||
testnestedflatbuffer: (number)[];
|
||||
testempty: StatT | null;
|
||||
testbool: boolean;
|
||||
testhashs32Fnv1: number;
|
||||
testhashu32Fnv1: number;
|
||||
testhashs64Fnv1: bigint;
|
||||
testhashu64Fnv1: bigint;
|
||||
testhashs32Fnv1a: number;
|
||||
testhashu32Fnv1a: number;
|
||||
testhashs64Fnv1a: bigint;
|
||||
testhashu64Fnv1a: bigint;
|
||||
testarrayofbools: (boolean)[];
|
||||
testf: number;
|
||||
testf2: number;
|
||||
testf3: number;
|
||||
testarrayofstring2: (string)[];
|
||||
testarrayofsortedstruct: (AbilityT)[];
|
||||
flex: (number)[];
|
||||
test5: (TestT)[];
|
||||
vectorOfLongs: (bigint)[];
|
||||
vectorOfDoubles: (number)[];
|
||||
parentNamespaceTest: InParentNamespaceT | null;
|
||||
vectorOfReferrables: (ReferrableT)[];
|
||||
singleWeakReference: bigint;
|
||||
vectorOfWeakReferences: (bigint)[];
|
||||
vectorOfStrongReferrables: (ReferrableT)[];
|
||||
coOwningReference: bigint;
|
||||
vectorOfCoOwningReferences: (bigint)[];
|
||||
nonOwningReference: bigint;
|
||||
vectorOfNonOwningReferences: (bigint)[];
|
||||
anyUniqueType: AnyUniqueAliases;
|
||||
anyUnique: MonsterT | MyGame_Example2_MonsterT | TestSimpleTableWithEnumT | null;
|
||||
anyAmbiguousType: AnyAmbiguousAliases;
|
||||
anyAmbiguous: MonsterT | null;
|
||||
vectorOfEnums: (Color)[];
|
||||
signedEnum: Race;
|
||||
testrequirednestedflatbuffer: (number)[];
|
||||
scalarKeySortedTables: (StatT)[];
|
||||
nativeInline: TestT | null;
|
||||
longEnumNonEnumDefault: bigint;
|
||||
longEnumNormalDefault: bigint;
|
||||
nanDefault: number;
|
||||
infDefault: number;
|
||||
positiveInfDefault: number;
|
||||
infinityDefault: number;
|
||||
positiveInfinityDefault: number;
|
||||
negativeInfDefault: number;
|
||||
negativeInfinityDefault: number;
|
||||
doubleInfDefault: number;
|
||||
constructor(pos?: Vec3T | null, mana?: number, hp?: number, name?: string | Uint8Array | null, inventory?: (number)[], color?: Color, testType?: Any, test?: MonsterT | MyGame_Example2_MonsterT | TestSimpleTableWithEnumT | null, test4?: (TestT)[], testarrayofstring?: (string)[], testarrayoftables?: (MonsterT)[], enemy?: MonsterT | null, testnestedflatbuffer?: (number)[], testempty?: StatT | null, testbool?: boolean, testhashs32Fnv1?: number, testhashu32Fnv1?: number, testhashs64Fnv1?: bigint, testhashu64Fnv1?: bigint, testhashs32Fnv1a?: number, testhashu32Fnv1a?: number, testhashs64Fnv1a?: bigint, testhashu64Fnv1a?: bigint, testarrayofbools?: (boolean)[], testf?: number, testf2?: number, testf3?: number, testarrayofstring2?: (string)[], testarrayofsortedstruct?: (AbilityT)[], flex?: (number)[], test5?: (TestT)[], vectorOfLongs?: (bigint)[], vectorOfDoubles?: (number)[], parentNamespaceTest?: InParentNamespaceT | null, vectorOfReferrables?: (ReferrableT)[], singleWeakReference?: bigint, vectorOfWeakReferences?: (bigint)[], vectorOfStrongReferrables?: (ReferrableT)[], coOwningReference?: bigint, vectorOfCoOwningReferences?: (bigint)[], nonOwningReference?: bigint, vectorOfNonOwningReferences?: (bigint)[], anyUniqueType?: AnyUniqueAliases, anyUnique?: MonsterT | MyGame_Example2_MonsterT | TestSimpleTableWithEnumT | null, anyAmbiguousType?: AnyAmbiguousAliases, anyAmbiguous?: MonsterT | null, vectorOfEnums?: (Color)[], signedEnum?: Race, testrequirednestedflatbuffer?: (number)[], scalarKeySortedTables?: (StatT)[], nativeInline?: TestT | null, longEnumNonEnumDefault?: bigint, longEnumNormalDefault?: bigint, nanDefault?: number, infDefault?: number, positiveInfDefault?: number, infinityDefault?: number, positiveInfinityDefault?: number, negativeInfDefault?: number, negativeInfinityDefault?: number, doubleInfDefault?: number);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
export declare enum Race {
|
||||
None = -1,
|
||||
Human = 0,
|
||||
Dwarf = 1,
|
||||
Elf = 2
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
export var Race;
|
||||
(function (Race) {
|
||||
Race[Race["None"] = -1] = "None";
|
||||
Race[Race["Human"] = 0] = "Human";
|
||||
Race[Race["Dwarf"] = 1] = "Dwarf";
|
||||
Race[Race["Elf"] = 2] = "Elf";
|
||||
})(Race || (Race = {}));
|
||||
@@ -0,0 +1,10 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
export enum Race {
|
||||
None = -1,
|
||||
Human = 0,
|
||||
Dwarf = 1,
|
||||
Elf = 2
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
export declare class Referrable implements flatbuffers.IUnpackableObject<ReferrableT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): Referrable;
|
||||
static getRootAsReferrable(bb: flatbuffers.ByteBuffer, obj?: Referrable): Referrable;
|
||||
static getSizePrefixedRootAsReferrable(bb: flatbuffers.ByteBuffer, obj?: Referrable): Referrable;
|
||||
id(): bigint;
|
||||
mutate_id(value: bigint): boolean;
|
||||
static getFullyQualifiedName(): string;
|
||||
static startReferrable(builder: flatbuffers.Builder): void;
|
||||
static addId(builder: flatbuffers.Builder, id: bigint): void;
|
||||
static endReferrable(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
static createReferrable(builder: flatbuffers.Builder, id: bigint): flatbuffers.Offset;
|
||||
serialize(): Uint8Array;
|
||||
static deserialize(buffer: Uint8Array): Referrable;
|
||||
unpack(): ReferrableT;
|
||||
unpackTo(_o: ReferrableT): void;
|
||||
}
|
||||
export declare class ReferrableT implements flatbuffers.IGeneratedObject {
|
||||
id: bigint;
|
||||
constructor(id?: bigint);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
export class Referrable {
|
||||
constructor() {
|
||||
this.bb = null;
|
||||
this.bb_pos = 0;
|
||||
}
|
||||
__init(i, bb) {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
static getRootAsReferrable(bb, obj) {
|
||||
return (obj || new Referrable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
static getSizePrefixedRootAsReferrable(bb, obj) {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new Referrable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
id() {
|
||||
const offset = this.bb.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
mutate_id(value) {
|
||||
const offset = this.bb.__offset(this.bb_pos, 4);
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
this.bb.writeUint64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
static getFullyQualifiedName() {
|
||||
return 'MyGame.Example.Referrable';
|
||||
}
|
||||
static startReferrable(builder) {
|
||||
builder.startObject(1);
|
||||
}
|
||||
static addId(builder, id) {
|
||||
builder.addFieldInt64(0, id, BigInt('0'));
|
||||
}
|
||||
static endReferrable(builder) {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
static createReferrable(builder, id) {
|
||||
Referrable.startReferrable(builder);
|
||||
Referrable.addId(builder, id);
|
||||
return Referrable.endReferrable(builder);
|
||||
}
|
||||
serialize() {
|
||||
return this.bb.bytes();
|
||||
}
|
||||
static deserialize(buffer) {
|
||||
return Referrable.getRootAsReferrable(new flatbuffers.ByteBuffer(buffer));
|
||||
}
|
||||
unpack() {
|
||||
return new ReferrableT(this.id());
|
||||
}
|
||||
unpackTo(_o) {
|
||||
_o.id = this.id();
|
||||
}
|
||||
}
|
||||
export class ReferrableT {
|
||||
constructor(id = BigInt('0')) {
|
||||
this.id = id;
|
||||
}
|
||||
pack(builder) {
|
||||
return Referrable.createReferrable(builder, this.id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class Referrable implements flatbuffers.IUnpackableObject<ReferrableT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):Referrable {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsReferrable(bb:flatbuffers.ByteBuffer, obj?:Referrable):Referrable {
|
||||
return (obj || new Referrable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsReferrable(bb:flatbuffers.ByteBuffer, obj?:Referrable):Referrable {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new Referrable()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
id():bigint {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
|
||||
mutate_id(value:bigint):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
static getFullyQualifiedName():string {
|
||||
return 'MyGame.Example.Referrable';
|
||||
}
|
||||
|
||||
static startReferrable(builder:flatbuffers.Builder) {
|
||||
builder.startObject(1);
|
||||
}
|
||||
|
||||
static addId(builder:flatbuffers.Builder, id:bigint) {
|
||||
builder.addFieldInt64(0, id, BigInt('0'));
|
||||
}
|
||||
|
||||
static endReferrable(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createReferrable(builder:flatbuffers.Builder, id:bigint):flatbuffers.Offset {
|
||||
Referrable.startReferrable(builder);
|
||||
Referrable.addId(builder, id);
|
||||
return Referrable.endReferrable(builder);
|
||||
}
|
||||
|
||||
serialize():Uint8Array {
|
||||
return this.bb!.bytes();
|
||||
}
|
||||
|
||||
static deserialize(buffer: Uint8Array):Referrable {
|
||||
return Referrable.getRootAsReferrable(new flatbuffers.ByteBuffer(buffer))
|
||||
}
|
||||
|
||||
unpack(): ReferrableT {
|
||||
return new ReferrableT(
|
||||
this.id()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: ReferrableT): void {
|
||||
_o.id = this.id();
|
||||
}
|
||||
}
|
||||
|
||||
export class ReferrableT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public id: bigint = BigInt('0')
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
return Referrable.createReferrable(builder,
|
||||
this.id
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
export declare class Stat implements flatbuffers.IUnpackableObject<StatT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): Stat;
|
||||
static getRootAsStat(bb: flatbuffers.ByteBuffer, obj?: Stat): Stat;
|
||||
static getSizePrefixedRootAsStat(bb: flatbuffers.ByteBuffer, obj?: Stat): Stat;
|
||||
id(): string | null;
|
||||
id(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
|
||||
val(): bigint;
|
||||
mutate_val(value: bigint): boolean;
|
||||
count(): number;
|
||||
mutate_count(value: number): boolean;
|
||||
static getFullyQualifiedName(): string;
|
||||
static startStat(builder: flatbuffers.Builder): void;
|
||||
static addId(builder: flatbuffers.Builder, idOffset: flatbuffers.Offset): void;
|
||||
static addVal(builder: flatbuffers.Builder, val: bigint): void;
|
||||
static addCount(builder: flatbuffers.Builder, count: number): void;
|
||||
static endStat(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
static createStat(builder: flatbuffers.Builder, idOffset: flatbuffers.Offset, val: bigint, count: number): flatbuffers.Offset;
|
||||
serialize(): Uint8Array;
|
||||
static deserialize(buffer: Uint8Array): Stat;
|
||||
unpack(): StatT;
|
||||
unpackTo(_o: StatT): void;
|
||||
}
|
||||
export declare class StatT implements flatbuffers.IGeneratedObject {
|
||||
id: string | Uint8Array | null;
|
||||
val: bigint;
|
||||
count: number;
|
||||
constructor(id?: string | Uint8Array | null, val?: bigint, count?: number);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
export class Stat {
|
||||
constructor() {
|
||||
this.bb = null;
|
||||
this.bb_pos = 0;
|
||||
}
|
||||
__init(i, bb) {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
static getRootAsStat(bb, obj) {
|
||||
return (obj || new Stat()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
static getSizePrefixedRootAsStat(bb, obj) {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new Stat()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
id(optionalEncoding) {
|
||||
const offset = this.bb.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
|
||||
}
|
||||
val() {
|
||||
const offset = this.bb.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
mutate_val(value) {
|
||||
const offset = this.bb.__offset(this.bb_pos, 6);
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
this.bb.writeInt64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
count() {
|
||||
const offset = this.bb.__offset(this.bb_pos, 8);
|
||||
return offset ? this.bb.readUint16(this.bb_pos + offset) : 0;
|
||||
}
|
||||
mutate_count(value) {
|
||||
const offset = this.bb.__offset(this.bb_pos, 8);
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
this.bb.writeUint16(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
static getFullyQualifiedName() {
|
||||
return 'MyGame.Example.Stat';
|
||||
}
|
||||
static startStat(builder) {
|
||||
builder.startObject(3);
|
||||
}
|
||||
static addId(builder, idOffset) {
|
||||
builder.addFieldOffset(0, idOffset, 0);
|
||||
}
|
||||
static addVal(builder, val) {
|
||||
builder.addFieldInt64(1, val, BigInt('0'));
|
||||
}
|
||||
static addCount(builder, count) {
|
||||
builder.addFieldInt16(2, count, 0);
|
||||
}
|
||||
static endStat(builder) {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
static createStat(builder, idOffset, val, count) {
|
||||
Stat.startStat(builder);
|
||||
Stat.addId(builder, idOffset);
|
||||
Stat.addVal(builder, val);
|
||||
Stat.addCount(builder, count);
|
||||
return Stat.endStat(builder);
|
||||
}
|
||||
serialize() {
|
||||
return this.bb.bytes();
|
||||
}
|
||||
static deserialize(buffer) {
|
||||
return Stat.getRootAsStat(new flatbuffers.ByteBuffer(buffer));
|
||||
}
|
||||
unpack() {
|
||||
return new StatT(this.id(), this.val(), this.count());
|
||||
}
|
||||
unpackTo(_o) {
|
||||
_o.id = this.id();
|
||||
_o.val = this.val();
|
||||
_o.count = this.count();
|
||||
}
|
||||
}
|
||||
export class StatT {
|
||||
constructor(id = null, val = BigInt('0'), count = 0) {
|
||||
this.id = id;
|
||||
this.val = val;
|
||||
this.count = count;
|
||||
}
|
||||
pack(builder) {
|
||||
const id = (this.id !== null ? builder.createString(this.id) : 0);
|
||||
return Stat.createStat(builder, id, this.val, this.count);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class Stat implements flatbuffers.IUnpackableObject<StatT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):Stat {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsStat(bb:flatbuffers.ByteBuffer, obj?:Stat):Stat {
|
||||
return (obj || new Stat()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsStat(bb:flatbuffers.ByteBuffer, obj?:Stat):Stat {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new Stat()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
id():string|null
|
||||
id(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null
|
||||
id(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;
|
||||
}
|
||||
|
||||
val():bigint {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
|
||||
mutate_val(value:bigint):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
count():number {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 8);
|
||||
return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0;
|
||||
}
|
||||
|
||||
mutate_count(value:number):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 8);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint16(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
static getFullyQualifiedName():string {
|
||||
return 'MyGame.Example.Stat';
|
||||
}
|
||||
|
||||
static startStat(builder:flatbuffers.Builder) {
|
||||
builder.startObject(3);
|
||||
}
|
||||
|
||||
static addId(builder:flatbuffers.Builder, idOffset:flatbuffers.Offset) {
|
||||
builder.addFieldOffset(0, idOffset, 0);
|
||||
}
|
||||
|
||||
static addVal(builder:flatbuffers.Builder, val:bigint) {
|
||||
builder.addFieldInt64(1, val, BigInt('0'));
|
||||
}
|
||||
|
||||
static addCount(builder:flatbuffers.Builder, count:number) {
|
||||
builder.addFieldInt16(2, count, 0);
|
||||
}
|
||||
|
||||
static endStat(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createStat(builder:flatbuffers.Builder, idOffset:flatbuffers.Offset, val:bigint, count:number):flatbuffers.Offset {
|
||||
Stat.startStat(builder);
|
||||
Stat.addId(builder, idOffset);
|
||||
Stat.addVal(builder, val);
|
||||
Stat.addCount(builder, count);
|
||||
return Stat.endStat(builder);
|
||||
}
|
||||
|
||||
serialize():Uint8Array {
|
||||
return this.bb!.bytes();
|
||||
}
|
||||
|
||||
static deserialize(buffer: Uint8Array):Stat {
|
||||
return Stat.getRootAsStat(new flatbuffers.ByteBuffer(buffer))
|
||||
}
|
||||
|
||||
unpack(): StatT {
|
||||
return new StatT(
|
||||
this.id(),
|
||||
this.val(),
|
||||
this.count()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: StatT): void {
|
||||
_o.id = this.id();
|
||||
_o.val = this.val();
|
||||
_o.count = this.count();
|
||||
}
|
||||
}
|
||||
|
||||
export class StatT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public id: string|Uint8Array|null = null,
|
||||
public val: bigint = BigInt('0'),
|
||||
public count: number = 0
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
const id = (this.id !== null ? builder.createString(this.id!) : 0);
|
||||
|
||||
return Stat.createStat(builder,
|
||||
id,
|
||||
this.val,
|
||||
this.count
|
||||
);
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { StructOfStructs, StructOfStructsT } from '../../my-game/example/struct-of-structs.js';
|
||||
export declare class StructOfStructsOfStructs implements flatbuffers.IUnpackableObject<StructOfStructsOfStructsT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): StructOfStructsOfStructs;
|
||||
a(obj?: StructOfStructs): StructOfStructs | null;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
static createStructOfStructsOfStructs(builder: flatbuffers.Builder, a_a_id: number, a_a_distance: number, a_b_a: number, a_b_b: number, a_c_id: number, a_c_distance: number): flatbuffers.Offset;
|
||||
unpack(): StructOfStructsOfStructsT;
|
||||
unpackTo(_o: StructOfStructsOfStructsT): void;
|
||||
}
|
||||
export declare class StructOfStructsOfStructsT implements flatbuffers.IGeneratedObject {
|
||||
a: StructOfStructsT | null;
|
||||
constructor(a?: StructOfStructsT | null);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
import { StructOfStructs } from '../../my-game/example/struct-of-structs.js';
|
||||
export class StructOfStructsOfStructs {
|
||||
constructor() {
|
||||
this.bb = null;
|
||||
this.bb_pos = 0;
|
||||
}
|
||||
__init(i, bb) {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
a(obj) {
|
||||
return (obj || new StructOfStructs()).__init(this.bb_pos, this.bb);
|
||||
}
|
||||
static getFullyQualifiedName() {
|
||||
return 'MyGame.Example.StructOfStructsOfStructs';
|
||||
}
|
||||
static sizeOf() {
|
||||
return 20;
|
||||
}
|
||||
static createStructOfStructsOfStructs(builder, a_a_id, a_a_distance, a_b_a, a_b_b, a_c_id, a_c_distance) {
|
||||
builder.prep(4, 20);
|
||||
builder.prep(4, 20);
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(a_c_distance);
|
||||
builder.writeInt32(a_c_id);
|
||||
builder.prep(2, 4);
|
||||
builder.pad(1);
|
||||
builder.writeInt8(a_b_b);
|
||||
builder.writeInt16(a_b_a);
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(a_a_distance);
|
||||
builder.writeInt32(a_a_id);
|
||||
return builder.offset();
|
||||
}
|
||||
unpack() {
|
||||
return new StructOfStructsOfStructsT((this.a() !== null ? this.a().unpack() : null));
|
||||
}
|
||||
unpackTo(_o) {
|
||||
_o.a = (this.a() !== null ? this.a().unpack() : null);
|
||||
}
|
||||
}
|
||||
export class StructOfStructsOfStructsT {
|
||||
constructor(a = null) {
|
||||
this.a = a;
|
||||
}
|
||||
pack(builder) {
|
||||
return StructOfStructsOfStructs.createStructOfStructsOfStructs(builder, (this.a?.a?.id ?? 0), (this.a?.a?.distance ?? 0), (this.a?.b?.a ?? 0), (this.a?.b?.b ?? 0), (this.a?.c?.id ?? 0), (this.a?.c?.distance ?? 0));
|
||||
}
|
||||
}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
import { StructOfStructs, StructOfStructsT } from '../../my-game/example/struct-of-structs.js';
|
||||
|
||||
|
||||
export class StructOfStructsOfStructs implements flatbuffers.IUnpackableObject<StructOfStructsOfStructsT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):StructOfStructsOfStructs {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
a(obj?:StructOfStructs):StructOfStructs|null {
|
||||
return (obj || new StructOfStructs()).__init(this.bb_pos, this.bb!);
|
||||
}
|
||||
|
||||
static getFullyQualifiedName():string {
|
||||
return 'MyGame.Example.StructOfStructsOfStructs';
|
||||
}
|
||||
|
||||
static sizeOf():number {
|
||||
return 20;
|
||||
}
|
||||
|
||||
static createStructOfStructsOfStructs(builder:flatbuffers.Builder, a_a_id: number, a_a_distance: number, a_b_a: number, a_b_b: number, a_c_id: number, a_c_distance: number):flatbuffers.Offset {
|
||||
builder.prep(4, 20);
|
||||
builder.prep(4, 20);
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(a_c_distance);
|
||||
builder.writeInt32(a_c_id);
|
||||
builder.prep(2, 4);
|
||||
builder.pad(1);
|
||||
builder.writeInt8(a_b_b);
|
||||
builder.writeInt16(a_b_a);
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(a_a_distance);
|
||||
builder.writeInt32(a_a_id);
|
||||
return builder.offset();
|
||||
}
|
||||
|
||||
|
||||
unpack(): StructOfStructsOfStructsT {
|
||||
return new StructOfStructsOfStructsT(
|
||||
(this.a() !== null ? this.a()!.unpack() : null)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: StructOfStructsOfStructsT): void {
|
||||
_o.a = (this.a() !== null ? this.a()!.unpack() : null);
|
||||
}
|
||||
}
|
||||
|
||||
export class StructOfStructsOfStructsT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public a: StructOfStructsT|null = null
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
return StructOfStructsOfStructs.createStructOfStructsOfStructs(builder,
|
||||
(this.a?.a?.id ?? 0),
|
||||
(this.a?.a?.distance ?? 0),
|
||||
(this.a?.b?.a ?? 0),
|
||||
(this.a?.b?.b ?? 0),
|
||||
(this.a?.c?.id ?? 0),
|
||||
(this.a?.c?.distance ?? 0)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { Ability, AbilityT } from '../../my-game/example/ability.js';
|
||||
import { Test, TestT } from '../../my-game/example/test.js';
|
||||
export declare class StructOfStructs implements flatbuffers.IUnpackableObject<StructOfStructsT> {
|
||||
bb: flatbuffers.ByteBuffer | null;
|
||||
bb_pos: number;
|
||||
__init(i: number, bb: flatbuffers.ByteBuffer): StructOfStructs;
|
||||
a(obj?: Ability): Ability | null;
|
||||
b(obj?: Test): Test | null;
|
||||
c(obj?: Ability): Ability | null;
|
||||
static getFullyQualifiedName(): string;
|
||||
static sizeOf(): number;
|
||||
static createStructOfStructs(builder: flatbuffers.Builder, a_id: number, a_distance: number, b_a: number, b_b: number, c_id: number, c_distance: number): flatbuffers.Offset;
|
||||
unpack(): StructOfStructsT;
|
||||
unpackTo(_o: StructOfStructsT): void;
|
||||
}
|
||||
export declare class StructOfStructsT implements flatbuffers.IGeneratedObject {
|
||||
a: AbilityT | null;
|
||||
b: TestT | null;
|
||||
c: AbilityT | null;
|
||||
constructor(a?: AbilityT | null, b?: TestT | null, c?: AbilityT | null);
|
||||
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
import { Ability } from '../../my-game/example/ability.js';
|
||||
import { Test } from '../../my-game/example/test.js';
|
||||
export class StructOfStructs {
|
||||
constructor() {
|
||||
this.bb = null;
|
||||
this.bb_pos = 0;
|
||||
}
|
||||
__init(i, bb) {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
a(obj) {
|
||||
return (obj || new Ability()).__init(this.bb_pos, this.bb);
|
||||
}
|
||||
b(obj) {
|
||||
return (obj || new Test()).__init(this.bb_pos + 8, this.bb);
|
||||
}
|
||||
c(obj) {
|
||||
return (obj || new Ability()).__init(this.bb_pos + 12, this.bb);
|
||||
}
|
||||
static getFullyQualifiedName() {
|
||||
return 'MyGame.Example.StructOfStructs';
|
||||
}
|
||||
static sizeOf() {
|
||||
return 20;
|
||||
}
|
||||
static createStructOfStructs(builder, a_id, a_distance, b_a, b_b, c_id, c_distance) {
|
||||
builder.prep(4, 20);
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(c_distance);
|
||||
builder.writeInt32(c_id);
|
||||
builder.prep(2, 4);
|
||||
builder.pad(1);
|
||||
builder.writeInt8(b_b);
|
||||
builder.writeInt16(b_a);
|
||||
builder.prep(4, 8);
|
||||
builder.writeInt32(a_distance);
|
||||
builder.writeInt32(a_id);
|
||||
return builder.offset();
|
||||
}
|
||||
unpack() {
|
||||
return new StructOfStructsT((this.a() !== null ? this.a().unpack() : null), (this.b() !== null ? this.b().unpack() : null), (this.c() !== null ? this.c().unpack() : null));
|
||||
}
|
||||
unpackTo(_o) {
|
||||
_o.a = (this.a() !== null ? this.a().unpack() : null);
|
||||
_o.b = (this.b() !== null ? this.b().unpack() : null);
|
||||
_o.c = (this.c() !== null ? this.c().unpack() : null);
|
||||
}
|
||||
}
|
||||
export class StructOfStructsT {
|
||||
constructor(a = null, b = null, c = null) {
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
this.c = c;
|
||||
}
|
||||
pack(builder) {
|
||||
return StructOfStructs.createStructOfStructs(builder, (this.a?.id ?? 0), (this.a?.distance ?? 0), (this.b?.a ?? 0), (this.b?.b ?? 0), (this.c?.id ?? 0), (this.c?.distance ?? 0));
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user